我是刚来的菜鸡,写题解是除了想提供另一种思路,还想让同学们看看我的代码有没有可以改进之处,毕竟刚刚学习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 人评分
看一下我的~就是一个简单的数组输入,然后循环. 不过我承认你的强大,哈哈哈我现在还没有学习链表.加油共勉 #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; }