解题思路:


    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 条评论

向志权 9月前 回复TA
#include<stdio.h>
int main()
{
	int i;
	int x[20];
	int k=0;
	float sum=0,p;
	for(i=0;i<20;i++)
	{
		scanf("%d",&x[i]);
	}
	for(i=0;i<20;i++)
	{
		if(x[i]<0)
		{
			k++;
		}
		if(x[i]>0)
		{
			sum+=x[i];
		}
	}
	p=sum/(20-k);
	printf("%d\n",k);
	printf("%0.2f\n",p);
	return 0;
}
雾璃 11月前 回复TA
0不是不属于正负数的任何一种吗?
赵志凌 11月前 回复TA
@小辣鸡 你把scanf(“%d”,&a【20】);里的a【20】改为a【i】
小辣鸡 1年前 回复TA
#include <stdio.h>
int main()
{
    int a[20],i,k=0;
    double sum=0;
    for(i=0;i<20;i++)
    {
        scanf("%d",&a[20]);
        if(a[i]<0)
            k++;
        else
            sum=sum+a[i];
    }
    printf("%d\n%0.2lf",k,sum/(20-k));
    return 0;
    
}
这个为什么错了大佬们
荆棘鸟的呼唤 1年前 回复TA
#include<stdio.h>
int main()
{
	int a,i,m;
	float n,b;
	m=0;
	n=0;
	b=0;
	for(i=1;i<=20;i++)
	{
		scanf("%d",&a);
		if(a<0) m++;
		if(a>0) n+=a;
	}
	b=n/(20-m);
	printf("%d\n%.2f",m,b);
	return 0;
}
编程小顽石 1年前 回复TA
#include<stdio.h>

int main()
{
    int i,a[20],sum=0,count1=0,count2=0;
    float aver=0.0;
    for(i=0;i<20;i++){
        scanf("%d",&a[i]);
        if(a[i]<0){
            count1++;
        }else 
        if(a[i]>0){
            count2++;
            sum += a[i];
        }
    }
    if(count2 > 0){
        aver=(float)sum/count2;
    }
    printf("%d\n%.2f",count1,aver);
    return 0;
}
玫瑰一片 1年前 回复TA
@刘陈晨 /这个符号是取整的
刘陈晨 1年前 回复TA
#include<stdio.h>
int main()
{
	int num[20]={},i,m=0;
	double average,sum;
	for(i=1;i<20;i++);
    {
		scanf("%d",&num[i]);
		if(num[i]<0)
		{
			m++;
		}
		else
		{
			sum=sum+num[i];
			average=sum/(20-m);
		}
		    printf("%d\n",m);
		    printf("%0.2lf\n",average);
		    return 0;
    }
}请问这个为什么不行啊?
l 1年前 回复TA
@杨静初 定义n时赋值为0:n = 0;for循环里i<20没得等于;m=sum/(20.0 - n),==是判断,=才是赋值
l 1年前 回复TA
@杨静初 定义n时赋值为0:n = 0;for循环里i<20没得等于;m=sum/(20.0 - n),==是判断,=才是赋值