1083: 数值统计(多实例测试)
时间限制: 1 Sec 内存限制: 128 MB
提交: 37690 解决: 20189
题目描述
统计给定的n个数中,负数、零和正数的个数
输入
输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。
输出
对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
样例输入 Copy
6 0 1 2 3 -1 0
5 1 2 3 4 0.5
0
样例输出 Copy
1 2 3
0 0 5
来源/分类
#include<stdio.h>
int main()
{
int a,x,y,z;
double b;
int i,j;
for(i=0; ;i++)
{
x=0;
y=0;
z=0;
scanf("%d",&a);
if(a==0)
break;
for(j=1;j<=a;j++)
{
scanf("%lf",&b);
if(b<0)
x++;
else if(b==0)
y++;
else if(b>0)
z++;
}
printf("%d %d %d\n",x,y,z);
}
return 0;
}
易错点在于x=0,y=0,z=0的位置,多实例测试中使用同一个变量时,要记得在循环内重置变量,而不是在最开头。