简单C语言求大神

ProblemDescription统计给定的n个数中,负数、零和正数的个数。Input输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数... Problem Description

统计给定的n个数中,负数、零和正数的个数。

Input

输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。

Output

对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。

Sample Input
6 0 1 2 3 -1 0
5 1 2 3 4 0.5
0

Sample Output
1 2 3
0 0 5

我的代码
#include<stdio.h>
int main()
{
int a,b,c,d,e,f;
while(scanf("%d",&a)!=EOF)
{ d=0;
e=0;
f=0;
{
if (a=0)
break;
else
for(b=1;b<=a;b++)
{ scanf("%d",&c);
if(c<0)
{
d=d+1;}
else if(c=0)
{
e=e+1;}
else if(c>0)
{ f=f+1;
}

}
}
printf("%d %d %d\n",d,e,f);
}
return 0;
}

为什么输出都是0 0 0,而且是输出的数字的行数。。。求指导。。。
展开
 我来答
kaixingui2012
推荐于2016-02-15 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6477万
展开全部
#include<stdio.h>
int main()
{
int a,b,d,e,f; //
while(scanf("%d",&a)!=EOF)
{
d=0;
e=0;
f=0;
if (a==0) //比较用==
break;
else 
for(b=1;b<=a;b++)
{
double c;//输入的是实数,包括小数,要用double
scanf("%lf",&c); //double 对应%lf
if(c<0)
{
d=d+1;
}
else if(c==0)//同上
{
e=e+1;
}
else if(c>0)
{
f=f+1;
}
}
printf("%d %d %d\n",d,e,f);
}
return 0;
}
百度网友0ecab4f
2014-10-27 · TA获得超过1029个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:381万
展开全部
#include<stdio.h>
int main()
{
int a,b,c,d,e,f;
while(scanf("%d",&a)!=EOF)
{ d=0;
e=0;
f=0;
{
if (a==0) //这里错了,要改成这样,按你写的那就成了赋值了。
break;
else
for(b=1;b<=a;b++)
{ scanf("%d",&c);
if(c<0)
{
d=d+1;}
else if(c=0)
{
e=e+1;}
else if(c>0)
{ f=f+1;
}

}
}
printf("%d %d %d\n",d,e,f);
}
return 0;
}
如若还有问题,可继续追问。
追问
还是错的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式