c语言 苏小红 第五版 第12章实验题答案
c语言 苏小红 第五版 第12章实验题答案
#include<stdio.h>
#include<string.h>
#define N 30
#define MAX_LEN 10
#define M 3
typedef struct student
{
long studentID;
char studentName[10];
int score[3];
}STUDENT;
void InputScore(STUDENT stu[],int n);
void SumforCorse(STUDENT stu[],int n,float sumcorse[],float avercorse[]);
void SumforStudent(STUDENT stu[],int n,float sumstudent[],float averstudent[]);
void DateScore(STUDENT stu[],int n,int (*compare)(int a,int b));
void DateNum(STUDENT stu[],int n);
void DateName(STUDENT stu[],int n);
int LinSearch(STUDENT stu[],long x,int n);
int LinSearchname(STUDENT stu[],char name[],int n);
void RateScore(STUDENT stu[],int n);
void PrintfScoreNum(STUDENT stu[],int n,float sumcorse[],float avercorse[]);
void Printf(STUDENT stu[],int n);
void Swapnum(long *a,long *b);
void Swapsum(int*a,int *b);
void Swapscore(int *a,int *b);
int Ascending(int a,int b);
int Descending(int a,int b);
main()
{int n,m,pos=0;
long x=0;
float avercorse[3]={0},averstudent[N]={0},sumcorse[3]={0},sumstudent[N]={0};
char name[MAX_LEN];
STUDENT stu[N];
printf("how many student?");
scanf("%d",&n);
InputScore(stu,n);
printf("计算每门课程的总分和平均分输入1\n");
printf("计算每个学生的总分和平均分输入2\n");
printf("按每个学生的总分由高到低输入3\n");
printf("按照每个学生的总分由低到高输入4\n");
printf("学号有小到大排出成绩表输入5\n");
printf("按姓名在字典中的排序输入6\n");
printf("按学号查询学生排名及各科考试成绩比输入7\n");
printf("按姓名查询学生排名及各科考试成绩比输入8\n");
printf("按成绩百分比输入9\n");
printf("输出每个学生的学号 姓名 各科考试成绩总分 平均分及每门课程的总分 平均分输入10\n");
scanf("%d",&m);
switch(m)
{
case 1:
SumforCorse(stu,n,sumcorse,avercorse);
break;
case 2:
SumforStudent(stu,n,sumstudent,averstudent);
break;
case 3:
DateScore(stu,n,Descending);
Printf(stu,n);
break;
case 4:
DateScore(stu,n,Ascending);
Printf(stu,n);
break;
case 5:
DateNum(stu,n);
Printf(stu,n);
break;
case 6:
DateName(stu,n);
Printf(stu,n);
break;
case 7:
{int j;
DateScore(stu,n,Descending);
printf("input the number you want to search:");
scanf("%ld",&x);
pos=LinSearch(stu,x,n);
if(pos!=-1)
printf("MT\t EN\t PH\t:\n");
for(j=0;j<3;j++)
{
printf("%d\t",stu[pos].score[j]);
}
printf("第%d名\n",pos+1);
break;
}
case 8:
{int j;
DateScore(stu,n,Descending);
printf("input the name you want to search:\n");
scanf("%s",name);
pos=LinSearchname(stu,name,n);
if(pos!=-1)
printf("MT\t EN\t PH\t:\n");
for(j=0;j<3;j++)
{printf("%d\t",stu[pos].score[j]);}
}
printf("第%d名\n",pos+1);
break;
case 9:
RateScore(stu,n);
break;
case 10:
PrintfScore
Num(stu,n,sumcorse,avercorse);
break;
}
}
void InputScore(STUDENT stu[],int n)
{
int i,j,m=3;
for(i=0;i<n;i++)
{
printf("inpu
c语言 苏小红 第五版 第12章实验题答案
t the %d student ID name score(MT EN PH):",i+1);
scanf("%ld",&stu[i].studentID);
scanf("%s",stu[i].studentName);
for(j=0;j<m;j++)
{
scanf("%d",&stu[i].score[j]);
}
}
}
void SumforCorse(STUDENT stu[],int n,float sumcorse[],float avercorse[])
{
int i,j;
for(j=0;j<3;j++)
{
for(i=0;i<n;i++)
{
sumcorse[j]=sumcorse[j]+stu[i].score[j];
}
avercorse[j]=sumcorse[j]/n;
switch(j)
{
case 0:
printf("the MT totle MT:%f\n",sumcorse[j]);
printf("the MT aver MT:%f\n",avercorse[j]);
break;
case 1:
printf("the EN totle EN:%f\n",sumcorse[j]);
printf("the EN aver EN:%f\n",avercorse[j]);
break;
case 2:
printf("the PH totle PH:%f\n",sumcorse[j]);
printf("the PH aver PH:%f\n",avercorse[j]);
break;
}
}
}
void SumforStudent(STUDENT stu[],int n,float sumstudent[],float averstudent[])
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<3;j++)
{
sumstudent[i]=sumstudent[i]+stu[i].score[j];
}
averstudent[i]=sumstudent[i]/3;
printf("第%d个the totle score and average is %f %f\n ",i+1,sumstudent[i],averstudent[i]);
}
}
void DateScore(STUDENT stu[],int n,int (*compare)(int a,int b))
{int i,j,k,m,t,sumstudent[N];
char temp[MAX_LEN];
for(i=0;i<n;i++)
{
for(j=0;j<3;j++)
{
sumstudent[i]=sumstudent[i]+stu[i].score[j];
}
}
for(t=0;t<n-1;t++)
{
k=t;
for(m=t+1;m<n;m++)
{
if((*compare)(sumstudent[k],sumstudent[m]))
{
k=m;
}
if(k!=t)
{
Swapsum(&sumstudent[t],&sumstudent[k]);
Swapnum(&stu[t].studentID,&stu[k].studentID);
Swapscore(stu[t].score,stu[k].score);
strcpy(temp,stu[t].studentName);
strcpy(stu[t].studentName,stu[k].studentName);
strcpy(stu[k].studentName,temp);
}
}
}
}
void Swapsum(int *a,int *b)
{int temp;
temp=*a;
*a=*b;
*b=temp;
}
void Swapnum(long *a,long *b)
{
long temp;
temp=*a;
*a=*b;
*b=temp;
}
void Swapscore(int *a,int *b)
{
int temp[M],i;
for(i=
…… 此处隐藏:5211字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [幼儿教育]【完整版】2019-2025年中国药物发现外
- [幼儿教育]2018-2019年初中信息技术广东初一竞赛
- [幼儿教育]最新外研版(一起)小学英语五年级上册《
- [幼儿教育]农业推广与创新管理专业 -中农大毕业论
- [幼儿教育]2017-2022年中国更年期用药行业市场深
- [幼儿教育]数学1.1.2第1课时棱柱、棱锥和棱台的结
- [幼儿教育]二年级群文阅读课例欣赏
- [幼儿教育]2010-2015年中国保险行业投资分析及深
- [幼儿教育]厄运打不垮的信念第一课时
- [幼儿教育]巧用文本,让表达在言语中绽放论文
- [幼儿教育]中学生百科知识竞赛题及答案
- [幼儿教育]八大菜系英文简介
- [幼儿教育]中国男装牛仔裤市场发展研究及投资前景
- [幼儿教育]远程数字视频监控系统在银行的应用
- [幼儿教育]光纤光缆制造工艺及设备
- [幼儿教育]国家安全法试题及答案
- [幼儿教育]2011高中提前招生及竞赛试题(物理卷1)
- [幼儿教育]宁夏第三产业房地产业、科学研究和技术
- [幼儿教育]中兴通讯 ME3000模块用户硬件设计手册_
- [幼儿教育]紫外线灯管的辐照强度问题
- 苏联东欧剧变的原因和历史教训浅析
- 人工智能导论实验报告(学生)
- 思科ITE章考试原题及答案
- 《学习雷锋好榜样》主题班会教案
- 加油站建设项目安全评价报告
- 剖析社保卡管理系统
- 2017-2018年影视剧新媒体版权运营行业
- 2017-2018学年四川省成都市高一上学期
- 2019最新高中数学 第三章 3.2.1 几类不
- 2011-2015年中国基酸市场调查及行业前
- 人教版新课标选修八Unit 1 课件Warming
- 郭溪燎原小学辅导学生记录表
- 教师资格证统考综合素质写作秘笈
- 国外校园绿色建筑研究方向与建设实践
- 15.1 动物运动的方式 课件(北师大版八
- 民用飞机空调系统
- 长安侠文化传统与唐诗的任侠主题
- 《中国近现代史纲要》名词解释
- 11金本《保险学概论》复习资料
- 民用建筑机电安装工程专业施工图图纸会




