c语言:为什么只执行n次,就结束程序?
答案:5 信息版本:手机版
解决时间 2019-10-06 04:33
已解决
2019-10-05 09:25
#include#includeint main()
{
int n;
char a[20];
scanf("%d",&n);
while(n--)
{
scanf("%s",a);
printf("%s\n",a);
}
return 0;
}
为什么到0就结束?
最佳答案
2019-10-05 10:32
while(n){}中的while循环,会判断括号内的值,如果里面的值不为零就执行大括号中的程序,如果为零了那么停止执行,跳出while循环,所以每执行一次n--会使n的值减1,减到0的时候就停止了,也就是第n次的时候就停下来了。要注意的是n--是n次,因为n--是把减之前的值给while判断,而--n的话就是n-1次,因为--n会先计算减1操作再把减完的值给while
全部回答
1楼
2019-10-05 14:33
因为while()循环,括号里循环条件是大于0!包括if等其他的循环条件都是如此。
2楼
2019-10-05 13:52
因为你while循环条件是n--
每次循环n自减一次 即等于执行了n = n - 1
那么,当n减到0,也就是循环了n次以后,跳出while循环,执行return 0自然程序是结束了
3楼
2019-10-05 12:49
int main(void)
{
double number1=0.0;
double number2=0.0;
char letter=0;
char operation=0;
char choose='n'; //
printf("\nenter the calculation\n");
scanf("%lf %c %lf",&number1,&operation,&number2);
fflush(stdin); //
printf("\ny or n ?\n"); //
scanf("%c",&choose); //
if((choose=='n')||(choose=='n'))//
goto finish;//
switch(operation)
{
case'+': printf("= %.2lf\n",number1+number2); break;
case'-': printf("= %.2lf\n",number1-number2); break;
case'*': printf("= %.2lf\n",number1*number2); break;
case'/': if(number2==0) printf("\n\n\adivision by zero error!\n");
else printf("= %.2lf\n",number1/number2); break;
case'%': if((long)number2==0) printf("\n\n\adivision by zero error!\n");
else printf("= %ld\n",(long)number1%(long)number2); break;
default: printf("\n\n\aillegal operation!\n"); break;
}
finish: //
return 0;
}
4楼
2019-10-05 12:04
到了第n次,n就等于0了,退出while循环。
while()括号里是条件,只有括号里的表达式为真值,才会继续循环,否则退出while循环。
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯