解题思路:


    1.因为需要输入20个数,所以需要定义一个数组;

    2.输入的数据有两种状态需要判断,所以可用if_else语句


注意事项:
    1.数组用for循环输入

    2.注意是有一个范围是   >= 0
参考代码:    

  

#include<stdio.h>
int main()
{
    int a[20],j=0;    //a[20]:存储数据    j:负数个数统计
    double sum=0;     //所有正数的和
    for(int i=0;i<20;i++)
    {
        scanf("%d",&a[i]);
        if(a[i]>=0)
        {
             sum=sum+(double)a[i];      
        }
        else
        {
            j++;
        }
    }
    printf("%d\n%.2lf\n",j,sum/(20-j));
    return 0;
}



点赞(5)
 

0.0分

27 人评分

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

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

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

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

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

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

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

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

评论列表 共有 26 条评论

嘻嘻哈哈 2年前 回复TA
#include"stdio.h"
#include"math.h"
#include"string.h"
int main()
{ 
 int a[100],count=0;
 float aver,sum;
 for(int i=0;i<20;i++)
 {
    scanf("%d",&a[i]);
  if(a[i]<0)
  {
    count++;
  }
  else
  sum=sum+a[i];
}
   aver=sum/(20-count);
   printf("%d\n",count);
  printf("%.3f\n",aver);
  return 0;

}
杨静初 2年前 回复TA
int i,a[20],n;
double sum=0;
float m;
for(i=0;i<=20;i++)
{
	scanf("%d",&a[i]);
	if(a[i]<0)
		n++;
	else
	{
		sum=sum+(double)a[i];
	}
}
	m==sum/(20-n);
	printf("%d\n",n);
	printf("%.2f\n",m);
	return 0;

错哪里了呀 有大佬帮我看看嘛?!拜托了
小鸟人 2年前 回复TA
#include<stdio.h>

int main(void)
{
	double arr[20]={0};
	int count=0;
	double sum=0;
	for(int i=0;i<20;i++)
	{
		scanf("%lf",&arr[i]);
		if(arr[i]<0)
		{
			count++;
		}else
		{
			sum+=arr[i];
		}	
	}

	printf("负数个数为:%d\n正数的平均值为:%0.2lf\n",count,sum/(20-count));
	return 0;
}
2rkeymjqmj 2年前 回复TA
@鲸 h不应该除10
2年前 回复TA
#include "stdio.h"
void main()
{
    int a[20],i,j=0;
    double h;
    for(i=0;i<20;i++)
    {scanf("%d",&a[i]);
    	if(a[i]>=0)h=h+a[i];
    	else j++;
    }
    printf("%d\n%.2f",j,h/10);
    
}

我的哪里出问题了?为什么这个网站识别一直是错误?????
昔痕 4年前 回复TA
@风痕 0是个问题
红客兵兵 4年前 回复TA
@风痕 但是这道题不管包括不包括0都判断正确了
风痕 4年前 回复TA
正数不包括0
专业报大腿 5年前 回复TA
#include<stdio.h>
int main(){
	int a[20],b=0;
	double sum=0;
	for(int i=0;i<20;i++){
		scanf("%d",&a[i]);
		if(a[i]<0){
			a[i]=0;
			b++;
		}
	}
	printf("%d\n",b);
	for(int i=0;i<20;i++){
		sum=sum+a[i];
	}
	printf("%0.2lf\n",sum/10);
	return 0; 
}
marec 5年前 回复TA
@Yk 直接输出答案就好,不用加前面的负数为之类的话吧