欢迎光临散文网 会员登陆 & 注册

c语言1.2 详解while

2022-06-18 18:11 作者:天絡  | 我要投稿

在写c语言的过程中有时会添加调试语句来看自己写到哪了,例如上一篇的计算整数有几位的代码

#include<stdio.h>

int main()4

int x;//定义变量

  int n=0; 

  ("%d",&x); 

  n++; 

  x/=10

  while(x>0) {

n++;  

x/=10;  

}

printf("%d\n",n);

  return 0; 

 }

只需要在while的循环里面加个printf("%d,%d",x,n);

就可以查看每次循环的步骤

例如输入一个123456进去,运行之后就会把每次整除以及整除一次10,n自加一次显示出来

/n换行

或者也会经常见到在代码中加printf(“hr1/2/3......”);这也是一种用来调试的手段,来让自己分清自己的代码写到哪了。

而代码会有逻辑错误,即便成功编译了或者运行成功了也会有逻辑错误

如果把整除x/=10;去掉,只留一个自增n++;那么代码就会无限循环下去

上面用了两次n++; x/=10;

如果把第一次的去掉,当然程序也可以顺利运行,并可以仍可以计算出123456为6位数。

不过需要验证

测试程序常使用边界数据,如有效范围两端的数据,特殊的倍数等。

以上面的为例,假设去掉第一段n++;x/=10;了,就不能在计算0,0也是个位数,在输入的时候就不会达成while(x>0)的的条件

在前面多加一段n++,就会在0的基础上先+1,之后再继续整除,就不会出现无法计数0的情况

同样也可以写成这样

用如果,否则的语句也可以避免无法计数0的情况,如果0没有构成x>0这一条件,while就不会执行循环,否则就执行n++;然后程序结束,最后仍计数0为1位数

不过要记得在提交作业的时候,要把输入的调试用的语句加上//注释,避免系统报错。

c语言1.2 详解while的评论 (共 条)

分享到微博请遵守国家法律