解题思路:
注意事项:
参考代码:
#include<stdio.h> int main() { int a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,n=0; double a; scanf("%d%d%d%d%d%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8,&a9,&a10); a=(double)(a1+a2+a3+a4+a5+a6+a7+a8+a9+a10)/10; if(a1>a) n+=1; if(a2>a) n+=1; if(a3>a) n+=1; if(a4>a) n+=1; if(a5>a) n+=1; if(a6>a) n+=1; if(a7>a) n+=1; if(a8>a) n+=1; if(a9>a) n+=1; if(a10>a) n+=1; printf("%d",n); return 0; }
0.0分
23 人评分
#include<stdio.h> int main() { int a1,a2,a3,a4,a5,a6,a7,a8,a9,a,p,z; scanf("%d%d%d%d%d%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8,&a9,&a); p = (a1+a2+a3+a4+a5+a6+a7+a8+a9+a)/10; z = 0; if (a1>p) z = z+1; if(a2>p) z = z+1; if(a3>p) z = z+1; if(a4>p) z = z+1; if(a5>p) z = z+1; if(a6>p) z = z+1; if(a7>p) z = z+1; if(a8>p) z = z+1; if(a9>p) z = z+1; if(a>p) z = z+1; printf("%d\n",z); return 0; }
#include<stdio.h> #include<stdlib.h> int main() { int a[10],ave,i; scanf("%d %d %d %d %d %d %d %d %d %d %d",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9]); ave=(double)(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9])/10; for(i=9;i>=0;i--) { if(a[i]<ave) { break; } } printf("%d",9-i); system("puase"); return 0; } 我这个哪错了
小吖白又白 2019-12-17 20:51:45 |
你这也够硬核的哈
小吖白又白 2019-12-17 20:59:52 |
题是要你输出大于平均数的个数,你这个求法不行,要全部遍历完数。比如:a0~a9,1 8 2 4 7 6 3 5 9 10 这组测试数据,aver = 5.5,遍历到5的时候break了,5的下标为7,那输出的结果就是2了。正确的结果应该是5,所以说简单的写法还是要每个数都要比较的,反正测试数据小,可以过哈
王者荣耀 2020-02-22 22:29:53 |
你这个方法的前提是输入的数是有序的,并且是按照从小到大的顺序排列。否则就不对
王者荣耀 2020-02-22 22:30:06 |
你这个方法的前提是输入的数是有序的,并且是按照从小到大的顺序排列。否则就不对