- UID
- 70751
注册时间2010-11-1
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
Nisy的C视频第五课作业时打出菱形。刚刚把这个图形实现了,但是觉得自己的代码写的有些繁琐。自己先把这个图形看成两个三角形,然后按照空格找规律把图形实现,规律好像没找好。
更重要的是最初没有写上这两句 scanf("%c",&b); if(b!='\n'){ printf("Input error!\n"); goto m;} 在开始要求输入数字时,如果输入字母会造成死循环。百度了解决方法,以后注意。
不足的地方希望大家指点一下。谢谢。
#include <stdio.h>
int main(void)
{
int x,n,i,j;
char b,s;
m: printf("Please input an odd integer between 3 and 25>\n");
scanf("%d",&n);
scanf("%c",&b);
if(b!='\n'){ printf("Input error!\n"); goto m;}
if((n<3)||(n>25)||(n%2==0))
{
printf("Input error!\n");
goto m;
}
n/=2;
for(x=0;x<=n;x++)
{
for(i=x;i<n;i++)
{printf(" ");}
printf("*");
for(j=0;j<2*x-1;j++)
{printf(" ");}
if(j!=0) {printf("*");}
printf("\n");
}
for(x=0;x<n;x++)
{
for(i=0;i<=x;i++)
{printf(" ");}
printf("*");
for(j=2*n-2*x-3;j>0;j--)
{printf(" ");}
if(2*n-2*x-3>0) printf("*");
printf("\n");
}
mm: printf("Continue? (y/n)>");
scanf(" %c",&s);
switch(s)
{
case 'y': goto m; break;
case 'n': break;
default : printf("Input error!\n"); goto mm;
}
return 0;
} |
|