可直接启动,无需修改程序代码
C语言程序设计实习报告
学院:艺术与传媒学院 专业:资讯艺术设计
班级:162104
学号:20101001518
姓名:何智皓
可直接启动,无需修改程序代码
歌星大奖赛系统
题目要求:
(1)、在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1到100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
(2)、同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接近平均分)和最不公平的评委。
【提示】
这个问题的第一个要求算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。第二个要求为了考虑效率,要用到排序技术。
一、 需求分析
根据题目第一个要求,有10个评委,需要依次输入10个分数,并在10个数中取出最大值和最小值;而且所输入的分数在1到100之间,否则该分数需要重新输入。第二个要求,需要将10个分数分别与去掉最大最小值之后的八个数的平均值进行比较。
二、 总体设计
根据题目要求,定义一个数组,将依次输入的10个分数存入这个数组中,再对数组中的数进行去值、求平均值、差值比较的操作。
三、 详细设计
可直接启动,无需修改程序代码
根据题目要求,将这个程序设计成2个函数,一个主函数main(),另一个函数impartial()用于进行差值比较。
1、 主函数
(1)、流程图
(2)、具体说明
#include<stdio.h>
#include<math.h>
int main()
{
int i;
int integer,average,sum,max,min,max1,min1;
int a[10];
max=-32768;
可直接启动,无需修改程序代码
min=32767;
sum=0;
for(i=1;i<=10;i++)
{
printf("请输入评委分数 %d=",i);
scanf("%d",&integer);
a[i-1]=integer;
sum+=integer;
if(integer>max)max=integer;
if(integer<min)min=integer;
}
average=(sum-max-min)/8;
printf("去掉一个最高分:%d\n去掉一个最低分:%d\n",max,min); printf("平均分为:%d\n",average);
min1=32767;
for(i=0;i<10;i++)
{
if(abs(a[i]-average)<min1){min1=abs(a[i]-average);}
}
for(i=0;i<10;i++)
if(abs(a[i]-average)==min1){printf("最接近平均分的评委分
可直接启动,无需修改程序代码
数:%d\n",a[i]);
printf("该评委为数字:%d\n",i+1);}
max1=-32767;
for(i=0;i<10;i++)
{
if(abs(a[i]-average)>max1){max1=abs(a[i]-average);}
}
for(i=0;i<10;i++)
if(abs(a[i]-average)==max1){printf("最不接近平均分的评委分数:%d\n",a[i]);
printf("该评委为数字:%d\n",i+1);}
四、 上机操作
依次输入分数
可直接启动,无需修改程序代码
去掉最高分去掉最低分
输出结果,按任意键退出。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说高考高中歌星大奖赛系统——C语言在线全文阅读。
相关推荐: