这是不循环的时候,没错误。
#include
int main()
{
printf("输入课程的首字母加空格加星期几加第几节到第几节,如数学周三第6到8输入m 3 6 8\n");
char f[9][7]={'1','2','3','4','5','6','7'},d;
int a,b,c,e,g=1;
scanf("%c%d%d%d",&d,&a,&b,&c);
for(e=b-1;e<=c-1;e++)
f[e+1][a-1]=d;
for(a=0;a<=8;a++)
{
printf("\n");
printf(" %d",a);
for(b=0;b<=6;b++)
printf("%5c",f[a][b]);
}
}
上面是只能输入一次的程序改成下面这样能循环输入并且输入!结束的程序后,出错,不知道哪里错
#include
int main()
{
printf("输入课程的首字母加空格加星期几加第几节到第几节,如数学周三第6到8输入m 3 6 8\n");
char f[9][7]={'1','2','3','4','5','6','7'},d;
int a,b,c,e,g=1;
do{
scanf("%c%d%d%d",&d,&a,&b,&c);
if(d=='!')
{
g=0;break;
}
for(e=b-1;e<=c-1;e++)
f[e+1][a-1]=d;
}while(g);
for(a=0;a<=8;a++)
{
printf("\n");
printf(" %d",a);
for(b=0;b<=6;b++)
printf("%5c",f[a][b]);
}
}
#include
int main()
{
printf("输入课程的首字母加空格加星期几加第几节到第几节,如数学周三第6到8输入m 3 6 8\n");
char f[9][7]={'1','2','3','4','5','6','7'},d;
int a,b,c,e,g=1;
do{
scanf("%c%d%d%d",&d,&a,&b,&c);
getchar();
if(d=='!')
{
g=0;break;
}
for(e=b-1;e<=c-1;e++)
f[e+1][a-1]=d;
}while(g);
for(a=0;a<=8;a++)
{
printf("\n");
printf(" %d",a);
for(b=0;b<=6;b++)
printf("%5c",f[a][b]);
}
}
回车符也是char所以要吃掉输入栈中的回车,不过这样做还是不太对,结束条件必须要输入3个值所以需要修改一下条件
搞Java的,不过我好像记得 int main()的话需要一个 return 0 吧;