解题思路和注意事项:


定义一个数组用来记录输入的值;


定义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;
}


点赞(2)
 

0.0分

12 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 3 条评论

TTSV 4年前 回复TA
#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;
}
ming2018 5年前 回复TA
@1231231231 0啊啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊??????????
1231231231 6年前 回复TA
0不是正数,算正数平均时应将0剔除