用C++做程序有10个评委打分,试对10个分数排序,并求这位选手的平均分(去掉一个最高分和一个最低分)

作者&投稿:鞠淑 (若有异议请与网页底部的电邮联系)
编程,某歌手大赛有10位选手10位评委要求评委给10位选手打分去掉一个最低分去掉一个最高分求出平均分~

1、首先,定义一个整型变量num,保存评委的人数。

2、接着,定义5个实型变量,保存所打的分数、最低分、最高分、总分和平均分。

3、初始化最低分和最高分,最低分为1000分,最高分为0分。

4、接着,设置总分分数,值为0。

5、输入评委的人数,保存在变量num中。


6、然后,提示输入评委的打分。

7、执行for循环语句,条件为i小于等于num。

8、运行程序,输入各评委的打分后,就会计算出节目的最后得分。

C++程序:
#include "iostream"#define N 10using namespace std;int main(){int arr[N];int i;int max = -32768;int min = 32767;double avg = 0;cout>arr[i];avg += arr[i];if(arr[i] > max){max = arr[i];}if(arr[i] < min){min = arr[i];}}avg -= min + max;avg /= (N - 2);cout<<"歌手的平均得分:"<<avg<<endl;return 0;}
运行测试:

1楼用到了泛型算法sort如果你要是不懂得话,可以自己编写一个排序冒泡啊之类的都可以我这里给你一个#include <iostream>
using namespace std;
//冒泡排序,升序排列,时间复杂度O(n^2),如果原始数据已经有序则复杂度为n
void bubblesort(int r[],int n)
{
int i,j,flag;
for (i=1;i<=n;i++)
{
flag=1; //设置交换标志,flag=1时为未交换
for (j=1;j<=n-i;j++)
if (r[j+1]<r[j])
{
flag=0; //已交换
r[0]=r[j];r[j]=r[j+1];r[j+1]=r[0];
}
if (flag !=0) break; //未交换,排序结束
}
}

int main ()
{
const int maxsize=10;
int r[maxsize+1];
for (int i=1;i<=maxsize;i++)
{
cin>>r[i];
}
bubblesort (r , maxsize);
for ( i=1;i<=maxsize;i++)
{
cout<<r[i]<<endl;
}
return 1;
}

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int scors[10],avrg;
for(int i=0; i<10; i++)
cin>>scors[i];
sort(scors,scors+10);
avrg=0;
for(int i=1; i<9; i++){
cout<<scors[i]<<" ";
avrg+=scors[i];
}
avrg/=8;
cout<<avrg<<endl;
}
//你这里没说精度,所以用的是整数,如果需要精度,自己把avrg定义成double类型数据

不错 学习下

我这个是C++的代码 里面含有标准库。
#include<iostream>
#include<vector>
#include<deque>
#include<string>
#include<algorithm>
#include<ctime>
using namespace std;

class Person
{
public:
Person(){};
Person(string name, double score)
{
this->m_Name = name;
this->m_Score = score;
}

string m_Name;
double m_Score; //平均分

};

void creatPerson(vector<Person>&v,int n)
{

int score = 0;
for (int i = 0; i < n; ++i)
{
string name1 = to_string(i+1); //int类型转化为string类型
string name2 = "号选手";
name1 += name2;
Person p(name1, score);
v.push_back(p);
}

}

void printVector(vector<Person>&v)
{
for (vector<Person>::iterator it = v.begin(); it != v.end(); ++it)
{
cout << it->m_Name << "最终平均分数为:" << it->m_Score << endl;

}

}

void printVector2(vector<Person>&v)
{
for (vector<Person>::iterator it = v.begin(); it != v.end(); ++it)
{
cout << it->m_Name << " ";
}
cout << endl;
}

void setVector(vector<Person>&v,int m)
{
for (vector<Person>::iterator it = v.begin(); it != v.end(); ++it)
{
deque<int>d;
cout << "已为" << it->m_Name <<"打了"<<m <<"次分:" << endl;
for (int i = 0; i < m; ++i)
{
int score = rand() % 41 + 60; // 打分区间60~100
d.push_back(score);
}

for (deque<int>::iterator dit = d.begin(); dit != d.end(); ++dit)
{
cout << *dit << " ";
}
cout << endl;

sort(d.begin(), d.end());

d.pop_front();
d.pop_back();

/*for (deque<int>::iterator dit = d.begin(); dit != d.end(); ++dit)
{
cout << *dit << " ";
}
cout << endl;*/

int sum = 0;
for (deque<int>::iterator dit = d.begin(); dit != d.end(); ++dit)
{
sum += *dit;
}
//cout << "sum=" << sum << "数量" << d.size() << endl;

double avg = sum*1.0 / d.size();

it->m_Score = avg;

}
cout << endl;
}

void sortScore(vector<Person>&v)
{
vector<Person>::iterator it = v.begin();

Person t;
for (unsigned int i = 0; i < v.size(); ++i)
{
for (unsigned int j = 0; j < v.size() - i - 1; ++j)
{
if (it[j].m_Score>it[j + 1].m_Score) //比较分数
{
t = it[j]; //更换整体
it[j] = it[j + 1];
it[j + 1] = t;
}
}
}

}

int main(void)
{
cout << "软件说明:" << endl;
cout << "该软件为N个评委为M个选手打分,这样每一个选手就收到N次打分,去掉一个最低分和一个最高分,算出选手的平均分,并为这些选手按平均分从低到高排序。" << endl;
cout << endl;
cout << "请输入选手的个数N=";
int n;
while (true)
{
char c = cin.peek();
if (c > '0'&& c <= '9')
{
cin >> n;
cout << "你设置的选手人数为:" << n << endl;
break;
}
cin.clear(); //重置标志位
cin.sync(); //清空缓冲区
cout << "你输入不正确,请重新输入" << endl;
}
getchar();
cout << endl;
cout << "请输入评委的个数M=";
int m;
while (true)
{
char c = cin.peek();
if (c > '0'&& c <= '9')
{
cin >> m;
cout << "你设置的评委人数为:" << m << endl;
break;
}
cin.clear(); //重置标志位
cin.sync(); //清空缓冲区
cout << "你输入不正确,请重新输入" << endl;
}
cout << endl;
cout << "请这"<<m<<"个评委为选手打分:"<<endl;
cout << "(为了避免手动输入分数浪费时间,下面让计算机随机为选手打"<<m<<"次分。)" << endl;
cout << endl;
srand((unsigned int)time(NULL)); //随机数种子
vector<Person>v;
creatPerson(v,n);

//printVector(v);
setVector(v,m);

cout << endl;
cout << "去掉一个最低分,去掉一个最高分:"<<endl;
printVector(v);

cout << endl;
cout << "选手成绩由低到高排序如下:" << endl;
sortScore(v);
printVector2(v);

system("pause");
return 0;
}


c语言编写程序:从键盘输入10个整数,输出它们的最大数,总和,平均值_百度...
代码如下:include <stdio.h>#include <stdlib.h>int main(){int i = 0, numbers[10] = { 0 }, max = 0, sum = 0;float average = 0;printf("请输入10个整数:");for (i = 0; i < 10; i++) {scanf("%d", &numbers[i]);}max = numbers[0];for (i = 0; i < 10...

如何用C或C++编写一个程序,随机从10个数中选出3个。
这样应该是随机的。include <stdio.h> include <stdlib.h> include define N 10 define M 3 void random(int* a, int n, int* b, int m){ int i, j, t;for (i = 0; i < n; i++){ j = rand() % n;t = a[i];a[i] = a[j];a[j] = t;} for (i = 0; i ...

用c语言编一个程序 输入10个整数 统计并输出其中正数负数和零的个数...
include<stdio.h>int main(){int data[10],i,flag[3]={0};for(i=0;i<10;i++){scanf("%d",&data[i]);if(data[i]>0){flag[0]++;}else if(data[i]<0){flag[1]++;}else{flag[2]++;}}printf("正数个数为%d,负数个数为%d,零的个数为%d\\n",flag[0],flag[1],flag[2]...

编写一个C语言程序,从键盘输入10个整数,求其中的最大值和最小值并显示...
先对输入的数进行排序 然后再输出就行了 include<stdio.h> void insertsort(int num[],int n){ int i,j;for(i=0; i<n;i++){ for(j=i+1;j<=n;j++){ if(num[i]>num[j]){ int temp=0;temp=num[i];num[i]=num[j];num[j]=temp;} } } } void main(){ int num[10...

求C语言程序: 输入10个数.将它们从小到大输出。
include <stdio.h>#include <iostream>using namespace std;int a[100];int main(){ cout<<"输入10个数,用空号隔开:"<<endl; for(int i=0;i<10;i++)cin>>a[i]; for(int i=0;i<10;i++) { for(int j=i+1;j<10;j++) { if(a[i]>a[j]) { ...

c语言输出500以内能被7整除的数,并且每行输出10个数?
以下是一个C语言程序,用于输出500以内能被7整除的数,并且每行输出10个数:include <stdio.h> int main() { int count = 0; \/\/ 计数器,每输出10个数换行 for (int i = 1; i <= 500; i++) { if (i % 7 == 0) { printf("%d ", i); \/\/ 输出能被7整除的数 count++...

求C语言程序: 如果输入10个任意的数据,求其中的奇数和.
\/\/这样就可以了#include<stdio.h>#define N 10int main(){ int i; int odds_sum = 0; int cur_value = 0; for(i = 0; i<N; i++){ scanf("%d", &cur_value); if(cur_sum%2 == 1){\/\/判断是否是奇数 odds_sum += cur_value; } } printf...

c语言程序功能,任意输入10个数,输出其中的最小数,最小数与最后面的...
include<stdio.h> void ft(int ff[],int m) {int j,min,p,t;min=ff[0];for(j=1;j<m;j++)if(min>ff[j]){min=ff[j];p=j;} printf("\\nmin=%d,p=%d\\n",min,p); t=ff[9]; ff[9]=ff[p]; ff[p]=t; printf("输出调换之后的数组:"); for(j=0;j<10;j++...

C程序编程,输入10个整型数,输出这10个数中仅出现1次的数
这样就ok.include <stdio.h> int main( ){ int data[ 10 ], i, j, t;printf("请输入10个数:");for ( i = 0; i < 10; i++ )scanf("%d", &data[ i ]);printf("仅出现1次的数为:");for ( i = 0; i < 10; i++ ){ t = i;for ( j = i + 1; j < 10;...

如何用C语言设计可以练10以内的加减法程序
include "stdlib.h"include "time.h"void main(){ char again='y'; \/\/again表示是否终止 int count=0,option; \/\/count存储输入无效数字的次数,option存储输入的菜单项 int sum,cha,k,right=0,wrong=0,num1,num2;while(again=='y'){ printf("===欢迎你进行10以内加减法练习===\\n");...

襄城区18319564565: 用C++做程序有10个评委打分,试对10个分数排序,并求这位选手的平均分(去掉一个最高分和一个最低分) -
言珊那素: #include<iostream>#include<algorithm> using namespace std; int main(){ int scors[10],avrg; for(int i=0; i<10; i++) cin>>scors[i]; sort(scors,scors+10); avrg=0; for(int i=1; i<9; i++){ cout<<scors[i]<<" "; avrg+=scors[i]; } avrg/=8; cout<<avrg<<endl; }//你这里没说精度,所以用的是整数,如果需要精度,自己把avrg定义成double类型数据

襄城区18319564565: 10名评委,5个参赛者,去掉一个最高分,一个最低分,计算平均分(用C++) -
言珊那素: 最高分:9.6*6-9.4*5=57.6-47=10.6(分) 最低分:9.6*6-9.8*5=57.6-49=8.6(分) (9.6*6-10.6-8.6)÷(6-2)=(57.6-10.6-8.6)÷4=38.4÷4=9.6(分) 答:参赛者的平均分是9.6分.

襄城区18319564565: 用c++10位评委给15个歌手打分,去掉一个最高分,去掉一个最低分,某歌手的最后得分是剩 -
言珊那素: #include#include using namespace std; int main() { int a[10],j,i,pos;a[0]=11111;a[1]=-111; for(i=0;i cin>>a[i];for(i=0;i for(j=0;j if(a[i] swap(a[i],a[j]); a[0]=a[9]=0; for(i=0;i a[0]+=a[i]; cout return 0; } 拿分来吧~~~

襄城区18319564565: 关于C程序,就是青年歌手参加歌曲大奖赛,有10个评委进行打分,试编程求这位选手的平均得分. -
言珊那素: #include <stdio.h> void main() {/*你的程序除了这个问题外还有其他的问题*/int sum=0,i,b;double avg;//定义浮点型,才能保存下来小数int a[10];int max,min;for(i=0;i<10;i++){scanf("%d",&a[i]);if(i==0)//这个判断加上初始,不然的...

襄城区18319564565: 用c#编写 演讲比赛,10个评委给选手打分求平均即为该歌手的得分.程序输入10个评委的分数,打印该 -
言珊那素: public static void Main(string[] args) { Console.WriteLine("请输入歌手姓名:"); string name = Console.ReadLine(); decimal sum = 0m; for (int i = 0; i{ Console.WriteLine("请输入评委{0}的分数", i + 1); string s = Console.ReadLine(); ...

襄城区18319564565: 谁是编程高手,C++的来帮帮忙
言珊那素: 给你说说思路: 唱歌那题的:用一个数组a[10]来存放10个评委的分数,比较得到最高和最低分,排除掉,再求平均分 报数的题,定义数组指针*p , 动态生成数组,从第一个开始数,把是3的去掉,数组往前移一位,依次就行了

襄城区18319564565: c++ 求裁判评分,最高分,最低分去掉 十个裁判的总分 -
言珊那素: 修改了下 忘了要计算用小数的#include<iostream.h> void main() { const int N=10; //N为评委数 float max,min,sum=0,a[N]; int i; for(i=0;i<N;i++) cin>>a[i]; max=a[0],min=a[0]; for(i=0;i<N;i++) { if(a[i]>max) max=a[i]; if(a[i]<min) min=a[i]; } cout<<"去掉一...

襄城区18319564565: 用c语言编程求平均分,共有20位选手参赛,10位评委打分,打分的原则是去掉一个最高分,去掉一个最低分 -
言珊那素: 恩,实在不想打程序,一个一个字母转换麻烦,要是写在纸上倒也罢了,所以只能给点思想.小白的程序哈.首先scanf语句,依次输入分数,应该设一个数组a,存放10个成绩,然后开始找出最大值和最小值,怎么找呢,思想,单层循环外围设min=max=0 循环里面if a[i]比a[min]小,i重新赋值给min,如果比a[max]大,i赋值给max.此时min和max为最小和最大值的下标,循环结束后,你可以直接设a[min]和a[max]为0就好了.最后单层循环,求总和,最后除以8.0,应该知道了吧.话说这种程序就是很白的思维啊,你会求最大和最小值就ok了.

襄城区18319564565: c++问题 10个人打分 去掉一个最高分和最低分求平均分 我写的程序不对 求修改 -
言珊那素: 程序逻辑上有问题,由于min和max是在动态变化的所以循环中的第三个if不能这么做,程序应修改改为: for(int i = 0; i < 10; i++) { if(a[i] < min) min = a[i]; if(a[i] > max) max = a[i]; sum+=a[i]; } sum=sum-min-max; ave=sum/8.0;

襄城区18319564565: C++给定程序的功能是将10个人员的考试成绩进行分段统计..如题: -
言珊那素: #include <stdio.h> int main() { int a[10], b[6] = { 0 }; int i; printf( "请输入10个考试成绩:" ); for ( i = 0; i < 10; ++i ) { scanf( "%d", &a[i] ); } for ( i = 0; i < 10; ++i ) { if ( 60 <= a[i] && a[i] <= 69 ) { ++b[0]; } else if ( 70 <= a[i] && a[i] <= 79 ) { ++b[1]; ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网