C语言 Problem C:简单的数值统计 Problem C:简单的数值统计Description现有一堆非零整数,要求统计其中正数、负数的个数以及它们的平均值.Input输入一系列整数,仅有最后一个数字是0,表示输入的结
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 10:16:32
C语言 Problem C:简单的数值统计 Problem C:简单的数值统计Description现有一堆非零整数,要求统计其中正数、负数的个数以及它们的平均值.Input输入一系列整数,仅有最后一个数字是0,表示输入的结
C语言 Problem C:简单的数值统计
Problem C:简单的数值统计
Description
现有一堆非零整数,要求统计其中正数、负数的个数以及它们的平均值.
Input
输入一系列整数,仅有最后一个数字是0,表示输入的结束.所有数据以及它们的和都在int的表示范围之内.
Output
输出有2行.如果有负数,第一行输出负数的个数和平均值,否则第一行输出0;如果有正数,第二行输出正数的个数以及平均值,否则第二行输出0.每行输出如果有2个数,则用空格隔开.平均值只保留2位小数.
Sample Input
1 2 3 4 -1 -2 -3 -4 0
Sample Output
4 -2.50 4 2.50
C语言 Problem C:简单的数值统计 Problem C:简单的数值统计Description现有一堆非零整数,要求统计其中正数、负数的个数以及它们的平均值.Input输入一系列整数,仅有最后一个数字是0,表示输入的结
#include
int main()
{
int number;
int countPositive=0,countNegative=0;
int sumPositive=0,sumNegative=0;
float avgPositive,avgNegative;
scanf("%d",&number);
while(number != 0)
{
if(number < 0) // the number is Positive.
{
sumPositive += number;
countPositive++;
}
else // the number is Negative.
{
sumNegative += number;
countNegative++;
}
scanf("%d",&number);
}
// calculate average
/* notice:convert to float,if you not do this ,you can't get the right answer*/
avgPositive = (sumPositive*1.0)/countPositive;
avgNegative = (sumNegative*1.0)/countNegative;
// Output
if(countPositive != 0) printf("%d %.2f\n",countPositive,avgPositive);
else printf("%d\n",countPositive);
if(countNegative != 0) printf("%d %.2f\n",countNegative,avgNegative);
else printf("%d\n",countNegative);
return 0;
}