作业内容:
根据“学生成绩的统计”程序,编写一个“歌唱比赛评分系统”的程序,要求运用数组和前面所学循环结构、输入输出、选择结构,能够进行多名歌手简单信息的录入,比赛分数的录入,去掉一个最高分,去掉一个最低分,剩余取平均分作为选手成绩,能够根据选手姓名或者编号查询输出选手成绩。
作业要求:
1、程序的主要设计思路,以文字或图表的形式描述比如歌手信息包括哪些,比赛分数如何存储等程序设计细节;
2、程序的源代码以及对源代码必要的行注释;
3、请把程序运行结果截图贴在本次作业中;
4、以上内容请在本文档中完成,并将本文档提交至学习平台,作为本课程第二次作业。
标准答案源码如下:
#include "stdafx.h"
#include "string.h"
#include "stdlib.h"
struct A{
int sid;
char name[20];
double score;
};
int main()
{
struct A sgr[20];
double max,min,sum,jud[10];
char t[20];
int i,j,sn,jn;
printf("有多少歌手和评委?\n");
if(scanf("%d%d",&sn,&jn)!=2 || sn<1 || jn<3 || sn>20 || jn>10){//输入歌手和评委人数
printf("Input error, exit...\n");//输入错误则退出
return 0;
}
printf("输入评委信息...\n");//以下输入评委对某歌手的打分
printf("评委打分");
for(i=0;i++<jn;printf(i<jn ? " JUD%d" : " JUD%d\n",i));
printf("-----------");
for(i=0;i++<jn;printf(i<jn ? "-----" : "-----\n"));
for(i=0;i<sn;i++){
printf("%3d ",sgr[i].sid=i+1);
scanf("%s",sgr[i].name);
for(min=200,sum=max=j=0;j<jn;j++){
scanf("%lf",jud+j);
if(jud[j]>max)//求评委打分的最高分
max=jud[j];
if(jud[j]<min)//求评委打分的最低分
min=jud[j];
sum+=jud[j];//求总分
}
sgr[i].score=(sum-min-max)/(jn-2);//求去除最高最低分的平均值
}
printf("\nSERI NAME SCOR\n-------------------\n");//输出信息
for(i=0;i<sn;i++)
printf("%3d%8s%8.2f\n",sgr[i].sid,sgr[i].name,sgr[i].score);
printf("Input a name or a serial number...\n");//以下按序号或姓名查询
scanf("%s",t);
for(i=0;i<sn;i++)
if(sgr[i].sid==atoi(t) || strcmp(t,sgr[i].name)==0){
printf("\nSERI NAME SCOR\n-------------------\n");
printf("%3d%8s%8.2f\n",sgr[i].sid,sgr[i].name,sgr[i].score);
break;
}
if(i>=sn)//未查到提示
printf("No find \'%s\'...\n",t);
return 0;
}
作业截图如下:
未经授权,禁止转载,发布者:形考达人,出处:https://www.xingkaowang.com/4379.html
本站不对内容的完整性、权威性及其观点立场正确性做任何保证或承诺!内容仅供研究参考,付费前请自行鉴别。
免费答案:形考作业所有题目均出自课程讲义中,可自行学习寻找题目答案,预祝大家上岸成功
评论列表(1条)
我