歌星大奖赛系统——C语言

更新时间:2023-07-28 15:10:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

可直接启动,无需修改程序代码

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);}

四、 上机操作

依次输入分数

可直接启动,无需修改程序代码

去掉最高分去掉最低分

输出结果,按任意键退出。

本文来源:https://www.bwwdw.com/article/bhhm.html

Top