第一次尝试
#include<stdio.h>
int main() {
int num = 0;
for (int i = 1; i <= 100; i++) {
if (i < 10&&i%9==0) {
num++;
}
else if (i>=10&&i%10==9) {
num++;
}
else if (i>=10&&i/10==9) {
num++;
}
}
printf("%d\n", num);
return 0;
}
运行过后发现代码中出现了许多没必要的操作,前两个if
是可以合并的,并且还存在一些问题,99
无法判断,只能找出其中的一个9
,不够好。
第二次尝试
#include<stdio.h>
int main() {
int num = 0;
for (int i = 1; i <= 100; i++) {
if (i / 10 == 9) {
num++;
if (i % 10 == 9) {
num++;
}
}
else if (i % 10 == 9) {
num++;
}
}
printf("一共有 %d 个9\n", num);
return 0;
}
此次做出一些改进,将冗余的判断语句去掉,并且在第一个中多加入一个判断语句,这样99
就可以读出两个9
了。