效果图及代码如下,如有帮助,请采纳一下,谢谢
代码:
#include <iostream>
#include <string>
using namespace std;
struct Signer
{
string name; //歌手名称
float score[7]; //歌手成绩
float max; //最高分
float min; //最低分
float sum; //总分
float avg; //歌手的平均分
};
int main()
{
Signer ss[10];
Signer tmp;
int i = 0,j = 0;
cout << "请输入10名歌手的名字" << endl;
for ( i = 0; i < 10; i++)
{
getline(cin,ss[i].name);
}
cout << "请输入每个学员的成绩" << endl;
for ( i = 0;i < 10; i++)
{
ss[i].sum = 0.0;
cout << ss[i].name << ":" ;
for(j = 0; j < 7; j++)
{
cin >> ss[i].score[j];
ss[i].sum += ss[i].score[j];
if (j == 0)
{
ss[i].max = ss[i].score[0];
ss[i].min = ss[i].score[0];
}else
{
if(ss[i].score[j] > ss[i].max)
ss[i].max = ss[i].score[j];
if(ss[i].score[j] < ss[i].min)
ss[i].min = ss[i].score[j];
}
}
ss[i].avg = (ss[i].sum - ss[i].max - ss[i].min) / 5.0;
}
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9-i; j++)
{
if (ss[j].avg < ss[j+1].avg)
{
tmp = ss[j];
ss[j] = ss[j+1];
ss[j+1] = tmp;
}
}
}
for (i = 0; i < 10; i++)
{
cout << ss[i].name << " 最高分:" << ss[i].max << " 最低分:" << ss[i].min << " 平均分:" << ss[i].avg << endl;
}
return 0;
}