先简单地计算9出现了多少次
利用for循环遍历1到99
用两个if语句分别判断个位和十位上是不是9
#include <stdio.h>
int main()
{
int i = 0;
int count = 0;
for(i=1;i<=99;i++)
{
//判断个位数是不是9
if(i%10==9)
count++;
//判断十位数是不是9
if(i/10==9)
count++;
}
printf("1到99内共有%d个9\n",count);
return 0;
}
接下来在判断9的基础上对代码进行修改判断8的个数
#include <stdio.h>
int main()
{
int i = 0;
int count = 0;
for(i=1;i<=99;i++)
{
//判断个位数是不是8
if(i%10==8)
count++;
//判断十位数是不是8
if(i/10==8)
count++;
}
printf("1到99内共有%d个8\n",count);
return 0;
}
从而可以修改代码,实现输入1到9任意一个数,输出1到99内这个数出现的个数
#include <stdio.h>
int main()
{
int i = 0;
int n =0;
printf("请输入要判断的数字:");
scanf("%d",&n);
int count = 0;
for(i=1;i<=99;i++)
{
//判断个位数是不是n
if(i%10==n)
count++;
//判断十位数是不是n
if(i/10==n)
count++;
}
printf("1到99内共有%d个%d\n",count,n);
return 0;
}
至于为什么没有包括0,
是因为以上代码当n=0时,1到9会直接满足i/10==0,
于是,若想实现判断0的个数,
需要在第二个if语句前加限制条件,
如 n!=0 或i>=10
#include <stdio.h>
int main()
{
int i = 0;
int n =0;
printf("请输入要判断的数字:");
scanf("%d",&n);
int count = 0;
for(i=1;i<=99;i++)
{
//判断个位数是不是n
if(i%10==n)
count++;
//判断十位数是不是n
if(i>=10)
{
if(i/10==n)
count++;
}
}
printf("1到99内共有%d个%d\n",count,n);
return 0;
}