TA的每日心情 | 开心 2014-6-18 08:29 |
---|
签到天数: 14 天 [LV.3]偶尔看看II
滴水大师
 
- 积分
- 2345
|
题目
解决代码及点评
- <pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"></pre><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code">/*
- 功能:设链表中每个结点包括学号、成绩、和指针三个字段, 试编程序将大于平均成绩的各个结点打印出来。
-
-
- */
-
- #include<stdio.h>
- #include<stdlib.h>
-
- #define N 10 //10名同学
-
- struct student //创建链表
- {
- int ID;
- int course;
- struct student *pNext;
- };
-
- typedef struct student STU;
-
- STU *init(int id, int cur) //设置头结点
- {
- STU *p = (STU *)malloc(sizeof(STU));
- if (p == NULL)return NULL;
- p->ID = id;
- p->course = cur;
- p->pNext = NULL;
- return p;
- }
-
-
- void insert(STU *pHead, int id, int cur) //插入结点
- {
- STU *pNode = (STU *)malloc(sizeof(STU));
- if (pNode == NULL)exit;
- pHead->pNext = pNode;
- pNode->ID = id;
- pNode->course = cur;
- pNode->pNext = NULL;
- }
-
- int count(STU *pHead); //求和
- void showAll(STU *pHead);
- double getAverage(STU *pHead,int n);
-
- void main()
- {
- STU *pHead = init(NULL,NULL); //头结点没有内容,next指向第一个学生
- int i = 1; //学号
- STU *p = pHead; //当前结点位置
- while (i <= N) //总共创建10个结点,每个结点代表一个学生
- {
- insert(p, i, rand() % 40 + 60); //插入一个学生信息
- i++;
- p = p->pNext; //当前指针后移
- }
-
- showAll(pHead); //输出链表信息,所有学生信息
-
- double ave = getAverage(pHead,N); //获得平均分数
- printf("\nAverage = %f\n",ave);
-
- STU *pa = pHead->pNext;
- while (pa != NULL)
- {
- if (pa->course > ave) // 打印分数大于平均分的学生科目信息
- {
- printf("ID: %d,\tachi = %d\n",pa->ID,pa->course);
- }
- pa = pa->pNext;
- }
- system("pause");
- }
-
- double getAverage(STU *pHead, int n) // 计算平均分
- {
- return count(pHead)/(double)n;
- }
-
- void showAll(STU *pHead) // 打印所有学生信息
- {
- STU *pa = pHead->pNext;
- while (pa != NULL) //输出链表信息
- {
- printf("%d:\t%d\n", pa->ID, pa->course);
- pa = pa->pNext;
- }
-
- }
- int count(STU *pHead) // 计算成绩之和
- {
- STU *pa = pHead->pNext;
- int sum = 0;
- while (pa != NULL)
- {
- sum += pa->course;
- pa = pa->pNext;
- }
- return sum;
- }</pre><br><br></pre></pre>
|
|