题目理解:
首先,含有 9 的数 9 19 29…除以 10 余 9
其次,90 91 92 93… 除以 9 等于 10(C 语言中除法不含小数,5/2 = 2)
代码编写:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
int num = 0;
int i = 0;
for (int i = 1; i <= 100; i++) {
//i 除以 10 余 9 ,9的个数自增
if (i % 10 == 9) {
num++;
}
////i 除以 10 等于 9 ,9的个数自增
if (i / 10 == 9) {
num++;
}
}
printf("1-100中含9的个数为:%d\n", num);
system("pause");
return 0;
}
函数定义法:
注意:此题目尽量不要用函数定义法,需要注意的是99这个数字,如果在代码中,for循环中的两次if条件判断句,如果加了else,有可能会少算一次,最后的结果就是19次,出现这种情况的就要注意一下了。
int NumNine(int i) {
if (i % 10 == 9) {
return 1;
}if (i / 10 == 9) {
return 1;
}return 0;
}
int main() {
int num = 0;
int i = 0;
for (int i = 1; i <= 100; i++) {
if (NumNine(i)==1) {
num++;
//所以此处再次计算99中一次9的个数自增1次。
}if (i % 10 == 9 && i / 10 == 9) {
num++;
}
}
printf("1-100中含9的个数为:%d\n", num);
system("pause");
return 0;
}