原题链接:二级C语言-计负均正
解题思路和注意事项:
定义一个数组用来记录输入的值;
定义num1和num2分别用来给正数和负数计数,从零开始,每次加1;
sum的类型按题目中的要求定义为double型,在输出的时候需要注意输出两位小数的形式是:%.2lf
这里说一下输出的格式:%m.n意思为:m是长度,n是小数保留位数。m和n都可以省略。
最后就是一个循环加判定条件解决问题了,看代码。
参考代码:
#include<stdio.h>
int main()
{
int a[20],num1 = 0,num2 = 0,i;
double sum = 0.0;
for(i=0; i<20; i++)
scanf("%d",&a[i]);
for(i=0; i<20; i++){
if(a[i] >= 0){
sum += a[i];
num1++;
}
else
num2++;
}
printf("%d\n%.2lf\n",num2,sum/num1);
return 0;
}0.0分
12 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<stdio.h> int main() { int a[20],n=0,s1=0; float s = 0, s2 = 0; while (n<20) { n = n + 1; scanf("%d", &a[n]); if (a[n] > 0) s = s + a[n], s2 = s2 + 1; else s1 = s1 + 1; } printf("%d\n%.2f",s1,s/s2); return 0; }