关于这道题有些博客输出的答案有误
错误代码展示
if( i%10 == 9)
count++;
if( i/10 == 9)
count++;
这种方法导致99出现了两次最后count的值为20;而正确值应为19。
思路分析:1到100之间的数字,9出现有两种情况,第一种在十位,第二种在个位。分别采用整除(i/10)和取余(i%10)实现
需要强调的是,这里采用或运算符,它的特点是第一个表达式满足后,后面的表达式就不会进行了,正好解决之前代码的错误。
正确代码
#include<stdio.h>
#include<Windows.h>
int main()
{
int i = 0;
int count = 0;
for (i = 1; i <= 100; i++)
{
if (9 == i % 10 || 9 == i / 10)
count++;
}
printf("count=%d\n", count);
system("pause");
return 0;
}