大川


私信TA

用户名:roronoali

访问量:1931

签 名:

热爱算法,热爱编程

等  级
排  名 9156
经  验 1177
参赛次数 0
文章发表 1
年  龄 3
在职情况 学生
学  校 中山大学南方学院
专  业 软件工程

  自我简介:

我是刚来的菜鸡,写题解是除了想提供另一种思路,还想让同学们看看我的代码有没有可以改进之处,毕竟刚刚学习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; 
 }
2020-06-27 20:19:41
.....简单的题 让你做复杂了
2020-04-29 17:45:54
啧啧,太难了,作为初学者的我,链表这种算法还未掌握。
2020-04-22 15:45:47
我学C++的,但我觉得你这个有些复杂化,可以直接用数组和循环和比较
2020-04-09 13:09:13
  • «
  • 1
  • »