OJ地址:​​https://vjudge.net/problem/HDU-2008​

统计给定的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

思路:

这是一道简单的数学题,但是在输入最好使用cin,cin不需要规定输入的类型,所以,可以输入整数和小数,也可以使用scanf,把输入的值规定为double类型即可。

程序代码:

程序一:

#include<iostream>
using namespace std;
int main(){
int n;
while(cin>>n&&n){
int a=0,b=0,c=0;
double x;
for(int i=0;i<n;i++){
cin>>x;
if(x<0)
a++;
else if(x==0)
b++;
else
c++;
}
cout<<a<<" "<<b<<" "<<c<<endl;
}
return 0;
}

程序二:

#include<cstdio>
int main(){
int n;
while(scanf("%d",&n)!=EOF&&n){
int a=0,b=0,c=0;
double x;
for(int i=0;i<n;i++){
scanf("%lf",&x);
if(x<0)
a++;
else if(x==0)
b++;
else
c++;
}
printf("%d %d %d\n",a,b,c);
}
return 0;
}

运行结果:

HDU - 2008  数值统计_数据