day59 ZZULIOJ-1083:数值统计(C++)

108 阅读1分钟

题目来源: ZZULIOJ-1083:数值统计

题目描述:

  • 描述: 统计给定的n个数中,负数、零和正数的个数
  • 输入: 输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。
  • 输出: 对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
  • 示例:
示例1:
输入:6 0 1 2 3 -1 0
输出:1 2 3
说明:第一个数是整数6,表示需要统计的数值的个数为6

示例2:
输入:5 1 2 3 4 0.5
输出:0 0 5

示例3:
输入:0
输出:
说明:如果n=0,则表示输入结束,该行不做处理

思路:二分查找

具体实现:

#include<stdio.h>
int main()
{
	double  x;//定义实数x
	int i,n,z,f,l;//定义循环变量i,每次循环次数n,正数z,负数f,零l
	while(scanf("%d",&n),n!=0)
	{
	z=0,f=0,l=0;//初始化每次数值统计0
	for(i=1;i<=n;i++)
	{
	    scanf("%lf",&x);//键盘输入x的值
		if(x>0)//如果x是正数
		z++;
		if(x<0)//如果x是负数
		f++;
		if(x==0)//如果x等于0
		l++;
		}
		printf("%d %d %d\n",f,l,z);	//输出负数、零、正数的数值
	}
	return 0;//程序正常结束
}