关于c语言中怎么统计scanf输入的数字等的个数的问题,希望高手给于详细解答

#include <stdio.h>
#define i 10
main()
{
int f=0, b=0, c=0, d=0,a[i],j,num,m;
printf("请输入数字:") ;
for(j=0;j<4;j++)
scanf("%d",&a[j]);
num=j;
for(j=0;j<num;j++)
{
if (a[j]>0) f++;
else
b++;
if(a[j]%2==0) c++;
else
d++;
}
printf("%d,%d,%d,%d",f,b,c,d);
}

我是想着如何不用让j<4,而是别人可以随意输入,无规律,只要不超过10个,比如输入六个数,按下enter就结束了,也就是就j小于scanf输入的个数,这样去循环,希望高手给予解答呀 谢谢啦

看看这样是不是满足你的要求“比如输入六个数,按下enter就结束了”:
#include <stdio.h>

main()
{
int f=0, b=0, c=0, d=0;
char ch;
printf("请输入数字:") ;

while((ch=getchar())!='\n')
{
if ((ch-'0')>0) f++;
else
b++;
if(((ch-'0')%2)==0) c++;
else
d++;
}

printf("%d,%d,%d,%d",f,b,c,d);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-05
#include <stdio.h>
#define i 10
int main()
{
int f=0, b=0, c=0, d=0,a[i],j=0,num,m;
char ch[2000];
int flag=1;
printf("请输入数字:") ;
while(flag)
{
a[j]=getchar() ;
if(a[j]==' ')
{j--;}
else if(a[j]=='\n'||j==9){
flag=0;
j--;
}

j++;
}
num=j;
for(j=0;j<num;j++)
{
if (a[j]>0) f++;
else
b++;
if(a[j]%2==0) c++;
else
d++;
}
printf("%d,%d,%d,%d",f,b,c,d);
system("pause");
return 0;
}
只能输入单个字符啊 原因你懂的 呵呵 给分吧 buddy
………………………………………………………………………………………………………………#include <stdio.h>

main()
{
int f=0, b=0, c=0, d=0;
char ch,p=' ';
printf("请输入数字:") ;

while((ch=getchar())!='\n')
{ if(p!=' '&&ch!=' ')
{ flag=1; f--; }
p=ch;

if ((p-'0')>0) f++;
else
b++;
if(p!=' '){
if(((p-'0')%2)==0) c++;
else
d++;}
}

printf("%d,%d,%d,%d",f,b,c,d);

system("pause");
return 0;
}
第2个回答  2011-12-04
你不能用数字方式%d输入,必须用%s输入,然后自己进行数字分析

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网