以下是引用atomhdp在2006-11-23 15:56:55的发言:
我也编了一个,有点罗索,但是,我运行的时候,有以下错误:错误 noname.c 12: 'else' 位置错在 main 函数中
还请教怎么回事呢?
main()
{
int a,b,c,k=0;
printf("INPUT a and b : ");
scanf("%3d,%3d",&a,&b);
if(a>b)
{
if(b%2==1)
{
for(c=b+2;c<=a;c+=2)
k+=c;
printf("the sum is %3d",k);
}
else
{
for(c=b+1;c<=a;c+=2)
k+=c;
printf("the sum is %3d",k);
}
} /* 问题出在这,你缺的就是这个大括号,建议你写程序注意退格,这样左括号和右括号就会上下对齐,不容易忘写
了 */
else
{if(a%2==1)
{
for(c=a+2;c<=b;c+=2)
k+=c;
printf("the sum is %3d",k);
}
else
{
for(c=a+1;c<=b;c+=2)
k+=c;
printf("the sum is %3d",k);
}
}
while(1);//这地方什么意思?如果用WIN_TC编译器的话,可以用getch();啊
/*从某种意义上来说,用while(1);是不好的.这里用上的话,
程序就是这么运行的:开始运行->你输入数据->输出数据->一直处在输出数据的那个黑忽忽的界面
在我的理解中,这道程序是还没有结束. WHY?
while(1);这句语句就是说 如果条件为(1)的话就执行空操作(什么都不干),而1是不会变成0的,所以条件永远成
立,也就是说程序执行到这一句就永不停止的执行空操作.当然,这样做的后果就是你可以直接看到结果,但是你
也回不到你写程序的界面(我指的是在TC中),只有关了再启动TC.*/
}