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

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

c++吗?
代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    while(1){
        cin>>n;
        int a=0,b=0,c=0;
        double t=0;
        if(n==0) break;
        for(int i=0;i<n;i++){
            cin>>t;
            if(t>0){
                a++;
            }else if(t<0){
                b++;
            }else{
                c++;
            }   
        }
        cout<<b<<" "<<c<<" "<<a<<endl;
    }
    return 0;
}

#include<stdio.h>
#include<math.h>
int main()
{
int num=0;
float m=0;

while(scanf("%d",&num)!=EOF)
{
    int a=0,b=0,c=0;
    for( int i=0;i<num;i++ )
    {
        scanf("%f",&m);
        if(m<0) a++;
        else if(m>0) c++;
        else b++;
    }
    if(num>=1)
    printf("%d %d %d\n",a,b,c);
}

}