思路分析:
1-100中出现9的数字有9,19,29……89和90,91,92……99。
我们先观察9的位置,9-89的9都在个位,91-98的9都在十位,而99则个位十位都有9。
因此我们先使用for循环,先产生出1-100的数
再使用"%"和"/"的操作符来判断个位和十位上是否有9.(9==a%10||9==a/10)
设置一个计数器,判断到一个含9的数字之后计数器加一
又因为99在我们的想法中只会使得计算器加一次,所以最后的个数应该再加上一个。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 0;
int sum = 0;
for (a = 1; a <= 100; a++)
{
if (9 == a % 10 || 9 == a / 10)
{
printf("%d ", a);
sum++;
}
}
printf("\n1-100中%d个含9\n",sum +1 );
return 0;
}
运行结果