首先,我们要分析9出现的位置,在0到100之间,就会出现在个位及十位,
当9处于个位时,可以求模来计算,即i%10
当9处于十位时,可以用/10来计算(要定义i为int型)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
int count = 0;
for (i = 1; i <= 100; i++)
{
if (i % 10 == 9) //个位数是9
count++;
if (i / 10 == 9) //十位数是9
count++;
}
printf("%d\n",count);
system("pause");
return 0;
}
输出结果
20
请按任意键继续. . .
还有一种容易出错的写法
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
int count = 0;
for (i = 1; i <= 100; i++)
{
if (i % 10 == 9 || i / 10 == 9) //个位和十位是9,但99只输出一个9
count++;
}
printf("%d\n",count);
system("pause");
return 0;
}
输出结果
19
请按任意键继续. . .
在这段代码中if (i % 10 == 9 || i / 10 == 9),当i=99是只输出一个9,这样结果就产生了误差。