用C语言统计400~499这些数中4这个数字出现的次数。要求判断一个数有几位4这个数字并用函数实现
发布网友
发布时间:2022-05-13 09:41
我来回答
共3个回答
热心网友
时间:2023-10-05 04:10
*
在400 - 499中,4共出现120次。
Press any key to continue
*/
#include<stdio.h>
int times4(int n) {
int times = 0;
while(n) {
if(n%10 == 4) times++;
n /= 10;
}
return times;
}
int main() {
int i,sum = 0;
for(i = 400; i < 500; ++i)
sum += times4(i);
printf("在400 - 499中,4共出现%d次。\n",sum);
return 0;
}
热心网友
时间:2023-10-05 04:11
/**
* 判断一个数有几位4这个数字,并用函数实现
* 应该这么理解吧~
*/
#include <stdio.h>
int judge(int n)
{
if (n == 0) return 0;
if (n % 10 == 4)
return 1+judge(n/10);
else
return judge(n/10);
}
int main()
{
int cnt = 0, x = 0;
for ( int n=400; n<=499; n++)
{
x = judge(n); cnt += x;
printf("%d 有 %d 位4\n", n, x);
}
printf("\n一共有 %d 个4\n", cnt);
return 0;
}追问可以解释一下那个函数吗?看不太懂~
追答那个函数就是求一个正整数里有几位是4的,我是用递归实现的,其实也可以用while循环,可以这么写:
int ans=0;
while(n)
{
if(n%10==4)ans++;
n/=10;
}
return ans;
一样的效果。
热心网友
时间:2023-10-05 04:11
#include <stdio.h>
int fun(int a)
{
if(a==4)
return 1;
else
return 0;
}
void main()
{
int i,a,j,k,c=0;
for(i=400;i<=499;i++)
{
k=i;
for(j=0;j<3;j++)
{
a=k%10;
k=k/10;
c+=fun(a);
}
}
printf("count=%d\n",c);
}