C语言怎样让程序执行多次,c语言:为什么只执行n次,就结束程序?

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循环。

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值