中易网

C源程序求修改

答案:2  悬赏:20  
解决时间 2021-03-03 04:19
#include
#include
int i;
float z;
struct Score
{
int num;
char name[30];
float mark;
}sco[10];

int main()
{
for(i=0;i<10;i++)
{
sco[i].num=i;
printf("Please input the details:No.%d\n",i+1);
printf("Enter the name:");
scanf("%s",&sco[i].name);
printf("Enter the score:");
scanf("%f",&sco[i].mark);
}
printf("Finished!\n");
void Best();
float Average();
void Higher();
system("pause");
return 0;
}

void Best()
{
float temp=sco[0].mark;
for(i=1;i<10;i++)
{
if(sco[i].mark>temp)
temp=sco[i].mark;
}
for(i=0;i<10;i++)
{
if(sco[i].mark=temp)
printf("%s %f",sco[i].name,sco[i].mark);
}
}

float Average()
{
float temp=0;
for(i=0;i<10;i++)
{
temp+=sco[i].mark;
}
z=temp/10;
printf("The average score of 10 courses is:%4.2f",z);
return(z);
}

void Higher()
{
for(i=0;i<10;i++)
{
if(sco[i].mark>z)
printf("%s %f",sco[i].name,sco[i].mark);
}
}

输入10门课程名称及成绩,输出分数最高的项目,输出平均分,输出比平均分高的项目。

编译无错,但是运行的时候输入完成后void Best();float Average();void Higher();被直接跳过了。

求指点

已解决。
最佳答案
语法错了
全部回答
number,score,name\ for(i=0;=n-1;i++)scanf("%ld,%d; } search(void) {long a; int first,last.score,%s",按成绩从大到小排序,stu[mid].num,stu[mid],姓名,学号顺序也随之调整。 d.插入;%ld"; =n-1;i++)printf(".h> #includestud[max].score)max=j; t1=stud[max].num;stud[max].num=stud[i].num;stud[i].num=t1; strcpy(t2,stud[max].name);strcpy(stud[max].name,stud[i].name);strcpy(stud[i].name,t2); t3=stud[max].score;stud[max].score=stud[i].score;stud[i].score=t3; } printf("\n"); printf("the records sorted by scores:\n"); printf("number,score,name\n"); for(i=0;i<=n-1;i++)printf("%ld,%d,%s\n",stud[i].num,stud[i].score,stud[i].name); printf("\n"); printf("press any key to continue\n"); getch(); } insert(void) { long t1;char t2[]="name copy temporary string";int t3;int i; printf("\n"); printf("input the new student's records:\n"); printf("number,score,name\n"); scanf("%ld,%d,%s",&stu[n].num,&stu[n].score,stu[n].name); for(i=n;i>=1;i--)if(stu[i].num #include struct student {long num; char name[20]; int score[3],average; }stu[5]; input(void) {int i; printf("input 5 students' records:\n"); printf("number,chinese score,maths score,english score,name\n"); for(i=0;i<=4;i++)scanf("%ld,%d,%d,%d,%s",&stu[i].num,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2],stu[i].name); printf("\n"); } ave(void) {int i,j,s; for(i=0;i<=4;i++) {for(j=0,s=0;j<=2;j++)s=s+stu[i].score[j]; stu[i].average=s/3; } } sort(void) {int i,j,max;long t1;int t2;char t3[]="name copy temporary string"; for(i=0;i<=3;i++) {max=i; for(j=i+1;j<=4;j++)if(stu[j].average>stu[max].average)max=j; t1=stu[max].num;stu[max].num=stu[i].num;stu[i].num=t1; strcpy(t3,stu[max].name);strcpy(stu[max].name,stu[i].name);strcpy(stu[i].name,t3); t2=stu[max].average;stu[max].average=stu[i].average;stu[i].average=t2; } } output(void) {int i; printf("the students' records sorted by the average scores:\n"); printf("rank,average score,number,name\n"); for(i=0;i<=4;i++)printf("%d,%d,%ld,%s\n",i+1,stu[i].average,stu[i].num,stu[i].name); printf("\n"); } main() {input(); ave(); sort(); output(); getch(); } 测试:输入:101,80,70,60,susaku 输出:rank,average score,number,name 103,90,85,70,cc 1,90,107,vegeta 107,80,95,95,vegeta 2,88,112,goku 112,95,90,80,goku 3,81,103,cc 126,75,85,65,gohan 4,75,126,gohan 5,70,101,susaku,sign; printf(" printf("number;)、姓名、成绩),所有学生以学号从小到大排序。要求编程序实现输入、查询.num;n"); printf("n"); printf("%ld.name),stu[mid].name);sign=1;),%d,%s\sign=0; /,stu[i].score,stu[i];how many students' printf("\n"); printf(".num==a) {printf("the student you want to find is:\:修改指定学号的学生的姓名或成绩: #include<);n"); getch(); } show(void) {int i; scanf(" printf("press any key to continue\n"n"); printf(")。 f.以上各个功能均编写成子函数; printf("the current records are:\,分数要是整数,名字不能有空格,每输入一个学生记录后按一次回车。 (3)加上插入的一共可存放20个学生。即:若一开始输入5个学生记录;n"); printf(" scanf("。具体要求如下: a.要求显示如下界面 **************************************** 1--------------输入 2--------------查询 3--------------排序 4--------------插入 5--------------修改 **************************************** 通过选择1-5来确定要做哪一个操作.num>a){last=mid-1;mid=(first+last)/%ld;,stu[i]; int n、排序、插入;\n",%d,%s\ printf("\,n); printf("\n" getch(); printf("input the number of the student you want to find?\n",执行一个操作,执行完后都回到界面,第一次执行操作时要先输入若干个学升记录。 (2)输入时按学号由小到大以“学号,分数,名字”格式,学号在十位内.name);n";i++)printf("%ld,%d;=last)) {if(stu[mid];n"); printf(".score! 题一:输入10个学生记录(包括学号;stdio。 d.排序:排序结果输出另一数组;} } if(sign==0)printf("n";i<=n-1; first=0;int mid,%s\n"number,score,name\:(1)每次输入一个代号;*输入*/ {int i;input %d students'press any key to continue\,mid是中点下标,sign是找到与否的标志*/ while((sign==0)&&(first<.h> struct student {long num; char name[20]; int score; }stu[20]。 b.输入:程序运行初始化,即首先输入5-10个学生记录的数组 c.查询:按学号查询用二分法实现,若查无此人,输出相关信息;last=n-1;mid=(first+last)/2;the records you input are,stu[i].num,stu[i];%d":\n");*first与last是两端点下标;,&n); printf("2:将一个新学生记录按学号顺序插入原来的数组。 e.修改;number,score,name\ input(void) /,&stu[i].num,&stu[i].score,stu[i],由主函数调用实现。 模块图和ns图(略) 用户文档;n"); for(i=0;i<,name\n"楼上的是c++呀,则最多可插入15个学生记录!楼主要c的 这是我以前做的课程设计,和你的题目基本一样,你看看吧:\n",score、删除诸功能;2;n"); for(i=0;i<,stu[i].name); printf(" records do you input; printf("\);} else {first=mid+1;mid=(first+last)/n"; records:\
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
鹧鸪天·秋雨 似水如云一片心。落花时节洗荷
亭子墕村怎么去啊,有事要去办理
求出处!求大神指导!
lol这版本那个英雄好
求一张ATM机余额一万多的图,有偿!!
申请【进口可用作原料的固体废物国内收获人注
煮熟的熊掌怎样给客人分
runningman里哪一期是金桐俊和智孝在一组?
英国留学新澳加
体育课跳的活动有哪些
山东青年政治学院的女生宿舍的床,规格上下铺
这里谁有动漫千与千寻-那一天的河川的简谱啊
龙湖·春江郦城-停车场地址在哪,我要去那里
我还最低额度祘逾期吗?卡被锁能解锁吗?
支付宝冻结但是自己解封了要多久可以用
推荐资讯
调鲍鱼汁用哪种老抽调色好 比如说李锦记的 有
财产一切险保险条款对于免责范围有哪些规定
瑞鹏宠物医院珠江新城分院地址有知道的么?有
如何用c语言显示BMP图片
飞行技术专业英语求指点
中国邮政储蓄银行ATM(096乡道)地址在什么地方
绿锦园林绿化项目管理公司地址在什么地方,想
自考首次报考需办理哪些手续
团北宾馆在什么地方啊,我要过去处理事情
我现在在深圳光明新区,我想看心理医生但我不
VI手册该收多少钱
“主题班会”谁有较好的方案,要适合学生主持
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?