當前位置:編程學習大全網 - 編程語言 - C++編程,高手快來,求救!!!

C++編程,高手快來,求救!!!

妳參考壹下:

#include <iostream.h>

const int LEN=30,M=100,N=100;

typedef struct

{

int num;//抽簽號碼

char name[LEN];//姓名

float score;//得分

} player;

player players[M];//歌手信息

int a[M][N];//評委打分信息

int m,n;//歌手和評委數量

//輸入歌手信息和評委打分信息

void input(void)

{

int i,j;

cout<<"歌手數量:";

cin>>m;

cout<<"評委數量:";

cin>>n;

for(i=0;i<m;i++)

{

players[i].num=i+1;

cout<<"第"<<i+1<<"個歌手的姓名:";

cin>>players[i].name;

cout<<"第"<<i+1<<"個歌手的評委打分:";

for(j=0;j<n;j++)

{

cin>>a[i][j];

}

}

}

//求平均值(去掉壹個最高分,去掉壹個最低高分,求出其余n-2個分數的平均值

void calculate(void)

{

int max,min,i,j;

for(i=0;i<m;i++)

{

max=min=players[i].score=a[i][0];

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

{

players[i].score+=a[i][j];

if(max<a[i][j])

{

max=a[i][j];

}

if(min>a[i][j])

{

min=a[i][j];

}

}

if(n>2)

{

players[i].score=(players[i].score-max-min)/(n-2);

}

else if(n>0)

{

players[i].score/=n;

}

}

}

//對各個選手的得分,用冒泡法排序

//如果用快速排序或堆排序,把這段改寫壹下就行了

void sort(void)

{

int i,j;

for(i=0;i<m-1;i++)

{

for(j=m-1;j>i;j--)

{

if(players[j].score>players[j-1].score)

{

player tmp;

tmp=players[j];

players[j]=players[j-1];

players[j-1]=tmp;

}

}

}

}

//顯示所有原始數據

void show_origin(void)

{

int i,j;

cout<<endl;

for(i=0;i<m;i++)

{

cout<<"抽簽號碼:"<<players[i].num<<"\t";

cout<<"姓名:"<<players[i].name<<"\t";

cout<<"評委打分:";

for(j=0;j<n;j++)

{

cout<<a[i][j]<<" ";

}

cout<<endl;

}

}

//顯示所有歌手的信息

void show_player(void)

{

int i;

cout<<endl;

for(i=0;i<m;i++)

{

cout<<"抽簽號碼:"<<players[i].num<<"\t";

cout<<"姓名:"<<players[i].name<<"\t";

cout<<"得分:"<<players[i].score<<endl;

}

}

//顯示獲獎歌手的信息

void show_medal(void)

{

int i;

cout<<endl;

cout<<"壹等獎1名:"<<endl;

for(i=0;i<1 && i<m;i++)

{

cout<<"抽簽號碼:"<<players[i].num<<"\t";

cout<<"姓名:"<<players[i].name<<"\t";

cout<<"得分:"<<players[i].score<<endl;

}

cout<<"二等獎3名:"<<endl;

for(;i<1+3 && i<m;i++)

{

cout<<"抽簽號碼:"<<players[i].num<<"\t";

cout<<"姓名:"<<players[i].name<<"\t";

cout<<"得分:"<<players[i].score<<endl;

}

cout<<"三等獎5名:"<<endl;

for(;i<1+3+5 && i<m;i++)

{

cout<<"抽簽號碼:"<<players[i].num<<"\t";

cout<<"姓名:"<<players[i].name<<"\t";

cout<<"得分:"<<players[i].score<<endl;

}

}

int main()

{

input();

show_origin();

calculate();

show_player();

sort();

show_medal();

return 0;

}

  • 上一篇:用C語言編寫程序:有五個學生的三門課程的成績,求每門課程的平均成績
  • 下一篇:天體物理學家艾拉·埃德森介紹了黑洞武器化的基本方法
  • copyright 2024編程學習大全網