本文主要是介绍第十一周课后练习题(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实现一个成绩管理程序:
- 直接先上代码
PPT里面说给学号、姓名占用的内存要求动态分配,既然如此不如直接给所有的结构体都动态分配
当然在看之前希望你们先看下我上一篇的代码不然typedef不太好理解,当然也可以不用typedef,毕竟这只是简化输出
可以看一下我上一篇博客哦https://blog.csdn.net/solitudi/article/details/103249389
#include<stdio.h>
#include<stdlib.h>typedef struct student
{char name[10]; char xuehao[10];double yuwen;double math;double english;double sum;double average;}cj;
int n;
double y_average,m_average,e_average;void s_average(cj s[]);
void sum(cj s[]);
void meike_average(cj s[]);
void paixu(cj s[]);
void paixu(cj s[]);
int main()
{cj *s=(cj *)malloc(sizeof(cj)*10);int i,j;printf("请输入学生人数:");scanf("%d",&n);for(i=0;i<n;i++){printf("请输入%d个学生的信息---姓名---学号---语文成绩---数学成绩---英语成绩\n",i+1);scanf("%s%s%lf%lf%lf",&s[i].name,&s[i].xuehao,&s[i].yuwen,&s[i].math,&s[i].english);} sum(s);s_average(s);meike_average(s);puts("");for(i=0;i<n;i++){printf("学生%s的总分为%.f\t各科平均分为%.2f\n",s[i].name,s[i].sum,s[i].average);}printf("\n");printf("各科平均分\n");printf(" \t平均分\n语 文\t %.2f\n数 学\t %.2f\n英 语\t %.2f\n",y_average,m_average,e_average);paixu(s);puts("");printf("姓名\t学号\t语文\t英语\t数学\t总分\t平均分\t名次\n");for(i=0;i<n;i++){printf("%s\t%s\t%.f\t%.f\t%.f\t%.f\t%.f\t%d\n",s[i].name,s[i].xuehao,s[i].yuwen,s[i].english,s[i].math,s[i].sum,s[i].average,i+1);}free(s);s = NULL;
}void sum(cj s[])
{int i;for(i=0;i<n;i++){s[i].sum=s[i].math+s[i].english+s[i].yuwen;}
}void s_average(cj s[])
{int i;for(i=0;i<n;i++){s[i].average=(s[i].math+s[i].english+s[i].yuwen)/3;}}void meike_average(cj s[])
{int i;double sum1=0,sum2=0,sum3=0;for(i=0;i<n;i++){sum1+=s[i].yuwen;sum2+=s[i].math;sum3+=s[i].english;} y_average=sum1/n;m_average=sum2/n;e_average=sum3/n;
}void paixu(cj s[])
{int i,j,t,flag;struct student temp;for (i = 0; i < n-1; i++) //轮次,共NUM-1次{flag = 0;for (j = 0; j < n - i-1; j++) //实现一次冒泡操作if (s[j].sum < s[j+1].sum) //交换a[j]和a[j+1]{ temp = s[j]; s[j] = s[j+1]; s[j+1] = temp; flag = 1; }if (flag == 0) break;}
}
文章福利:
1.C
2.D
3.A
4.A
5.D
6.C
7.A
8.D
9.A
10.C
11.D
12.A
13.C
14.C
15.D 00001000 00000000
11000101 11110000
16.A
17.A
18.A
19.C
20.A
这篇关于第十一周课后练习题(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!