题解 | #记负均正II#
记负均正II
https://www.nowcoder.com/practice/64f6f222499c4c94b338e588592b6a62
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{
float aver,n=0.0,m=0.0;
long s[50000],num;
int i,k=0,l=0,sum=0;
while (scanf("%ld\n", &num)==1)
{
s[l] = num;
l++;
}
for(i=0;i<l;i++)
{
if(s[i]<0)
k++;
else
{
if(s[i]>0)
{
sum=sum+s[i];
n=n+1.0;
}
}
continue;
}
if(k==0)
{
printf("%d\n",k);
aver=sum/n;
printf("%.1f",aver);
}
else
{
if(n!=0)
{
printf("%d\n",k);
aver=sum/n;
printf("%.1f",aver);
}
else {
if(n==0)
{
printf("%d\n",k);
printf("0.0");
}
}
}
}
利用while语句,将输入的数赋值给数组元素,利用循环判断每个元素正负性,结合标记n和k,记录负数和正数个数,最后判断有没有负数及是否全为负数或有负有正来决定输出。
#牛客创作赏金赛#