原题链接:二级C语言-计负均正
解题思路:
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;
}0.0分
27 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#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; }#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; } 这个为什么错了大佬们#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; }#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; }#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; } }请问这个为什么不行啊?