刚开始以为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这样看起来是真正的快乐啊!