刚开始以为n = 0时就返回重新输入,结果收到一个TLE。
仔细想想就算我的if-else不怎么省时也不至于TLE吧。于是一行一行的重新查找,并没有什么问题。那么就发扬一下审题精神吧,诶嘿,还真的是,输入n为0时结束输入。。
贴个代码吧。
#include<stdio.h>
int main()
{
int n;
while(scanf("%d", &n) != EOF){
int positive = 0, minus = 0, zero = 0;
float x;
if(n <= 0)
break;
else{
while(n--){
scanf("%f", &x);
if(x > 0)
positive++;
else if(x < 0)
minus++;
else
zero++;
}
}
printf("%d %d %d\n", minus, zero, positive);
}
return 0;
}
总感觉比较乱,特别是对于n的判定,又转念一想,好像是这个方法可以做哎。
于是又变成了这样了。
#include<stdio.h>
int main()
{
int n;
while(scanf("%d", &n) && n){
int positive = 0, minus = 0, zero = 0;
float x;
while(n--){
scanf("%f", &x);
if(x > 0)
positive++;
else if(x < 0)
minus++;
else
zero++;
}
printf("%d %d %d\n", minus, zero, positive);
}
return 0;
}
hhhh这样看起来是真正的快乐啊!