题解 | #记负均正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,记录负数和正数个数,最后判断有没有负数及是否全为负数或有负有正来决定输出。#牛客创作赏金赛#