原题链接:二级C语言-平均值计算
我是刚来的菜鸡,写题解是除了想提供另一种思路,还想让同学们看看我的代码有没有可以改进之处,毕竟刚刚学习C语言,还没形成规范和掌握套路。如有建议请提出,本人必定学习一番,以让我的基础更加巩固,谢谢同学们!
注:我试过用普通思路和链表的思路,链表用时短一点;
解题思路:本题我是用的链表(不知道我说的对不对,错误请指正)。
参考代码:
#include<stdio.h>
typedef struct number{
int num;
struct student *next;
}stu;
int main(){
int a = 10, b = 0, c = 0;
stu *head, *p;
head= (stu *)malloc(sizeof(stu));//链表头
head->next = NULL;
p = head;
while (a != 0) {//输入10个数据
stu *b;
b = (stu *)malloc(sizeof(stu));
scanf("%d", &b->num);
b->next = NULL;
p->next = b;
p = b;
a--;//a到0时退出循环
}
stu *pr = head->next, *pt = pr;
while (pr) {//这个是10个数据的总和
b += pr->num;
pr = pr->next;
}
b /= 10;//求平均
while (pt) {//每大于平均数一次C就+1
if (pt->num > b) {
c++;
}
pt = pt->next;
}
printf("%d\n", c);
return 0;
}0.0分
4 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
看一下我的~就是一个简单的数组输入,然后循环. 不过我承认你的强大,哈哈哈我现在还没有学习链表.加油共勉 #include<stdio.h> int main() { int a[10]; int i=0,j=0; int sum=0; int avr; for(i=0;i<10;i++) { scanf("%d",&a[i]); sum=sum+a[i]; } avr=sum/10; for(i=0;i<10;i++) { if(a[i]>avr)j++; } printf("%d",j); return 0; }