#include <stdio.h>
#include <string.h>
#define N 200
int main()
{
char a[N]={0};
int i=0,n=0; //数字长度为n
int s=0;
int flag=0;
scanf("%s",&a);
n=strlen(a);
for(i=0;i<n;i++)
{
if(a[i]=='4')
s++;
}
if(n==4)
{
flag=1;
}
else
{
while(n>9)
{
if(n%10==4)
{
flag++;
}
n=n/10;
}
}
printf("%d",s+flag);
return 0;
}
数字长度为40多的时候,十位进不了while(n>9)
#include <stdio.h>
#include <string.h>
#define N 200
int main()
{
char a[N]={0};
int i=0,n=0; //数字长度为n
int s=0;
int flag=0;
scanf("%s",&a);
n=strlen(a);
for(i=0;i<n;i++)
{
if(a[i]=='4')
s++;
}
while(n>3)
{
if(n%10==4)
{
flag++;
}
n=n/10;
}
printf("%d",s+flag);
return 0;
}