黄老师2017年c语言,2011-上黄老师己的《C语言程序设计》实验报告.doc

2011-上黄老师己的《C语言程序设计》实验报告

《C语言程序设计》实验报告

年级:2010级(必修)

学号: 姓名: 专业:

实验题目:编写颁奖程序

在n个选手中评出一等奖1名、二等奖2名、三等奖3名,输出得奖的情况。评分过程为:m个裁判给选手打分,去掉一个最高分和一个最低分后,其他分数的平均分即为选手的得分。根据选手得分情况来评奖。

要求:

1.编写排序函数sort()

2.编写求从一组数中去掉最大和最小数后的平均值函数average()

3.利用以上两个函数评奖

源程序清单:

#include

#include

#define P printf("================\n")

#define Q printf("---------------------------\n")

int average(int m)求平均成绩,m为所有评委人数

{

int s,k=0,max=0,min=1000,sum=0; //定义最高分和最低分用和初值

while(k

{

scanf("%d",&s); //输入每个评委给的分数

if(s>=max)max=s; //评委给分求出最高分

if(s

sum+=s; //评委给分求和

k++;

}

return (sum-max-min)/(k-2); //去掉一个最高分和一个最低分并求平均分

}

void sort(int a[][2],int n)//排序函数a数组2列,n名选手

{

int k,j,t,y=0;

for(k=1;k

{

for(j=1;j<=n-k;j++)

{

if(a[j][1]

{t=a[j][1];

a[j][1]=a[j+1][1];

a[j+1][1]=t;

y=a[j][0];

a[j][0]=a[j+1][0];

a[j+1][0]=y;

}

}

}

}

void main()

{

int i,j,k,m,n,a[10][2];//n为选手m为评委人数

system("color 1a"); printf("请输入比赛人数和评委n/m分别为:\n");

scanf("%d%d",&n,&m);

P;

for(j=1,i=1;j<=n;i++,j++)

{

a[j][0]=i;

printf("请输入%d号选手的评委打分:\n",j);

Q;

a[j][1]=average(m);

}

P;

for(k=1;k<=n;k++)printf("%d号选手的得分是%d\n",k,a[k][1]);

sort(a,n);

P;

printf("一等奖是第%d号选手\n",a[1][0]);

Q;

printf("二等奖是第%d和%d号选手\n",a[2][0],a[3][0]);

Q;

printf("三等奖是第%d、%d和%d号选手\n",a[4][0],a[5][0],a[6][0]);

Q;

}

#include

#define N 7//设选手10名

#define M 5//评委5名

#define P printf("=============================================================\n")

struct stu//定义结构体stu

{long int sno;//选手编号

float avescore; //平均成绩

int score[M]; //5个评委评分组成一个数组

int all;

}stud[N]; //定义结构体数组

void sort(struct stu arr[])//定义排序函数

{int i,j;

struct stu temp;//设临时结构体变量

for(i=0;i

for(j=i+1;j

if(arr[i].avescore

{temp=arr[i];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值