题目:编写程序数一下 1到 100 的所有整数中出现多少次数字9
分析:1-100之间的数字,9要么出现在个位要么出现在十位,所以问题就演变成如何取出数字的每一位?判断是否是9.
这里我们不难想到之前学过的知识:整数的分解。采用%10再/10的办法。
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num = 0;
int count = 0;//统计9的个数
for (int n = 1; n <= 100; n++)
{
num = n;//注意这条赋值语句一定要有,不能for循环用num,while循环去除每一位也用num,如果都是用num进行循环,则num每次出了while循环后再自增值都为1,无法进行之后数字的判断
while (num > 0)
{
int d = num % 10;//取出最后一位
if (d == 9)
{
count++;
}
num /= 10;//去除最后一位
}
}
printf("9的个数为:%d\n", count);
system("pause");
return 0;
}
运行结果: