题目名称:数9的个数
题目内容:编写程序数一下1到100的所有整数中出现多少个数字9
代码如下:
#include <stdio.h> int main() { int i = 0; int count = 0; for (i = 1; i <=100; i++) { if (i % 10== 9) //个位为9的 count++; else if (i / 10 == 9) //十位为9的 count++; } //9 19 29 39 ...99 -10个9 //90 91 92 93 ..99 -10个9 printf("count=%d\n", count); return 0; }
运行结果如下:
以上代码中有一个明显的错误:
99这个数只会计数一次,因为if-else if结构,当i等于99时,i % 10== 9,count++,i / 10 == 9这个分支则不会进入,因为else if只有当if中为false的时候才会进入,所以才会导致count=19少了一个,本来应该是9 19 29 39 ...99 -10个9、90 91 92 93 ..99 -10个9,一共20个9的。
从下图中可以看出来
改正之后的代码如下:
#include <stdio.h> int main() { int i = 0; int count = 0; for (i = 1; i <=100; i++) { if (i%10 == 9) //个位为9的 count++; if (i/10 == 9) //十位为9的 count++; } //9 19 29 39 ...99 -10个9 //90 91 92 93 ..99 -10个9 printf("count=%d\n", count); return 0; }
运行结果如下: