本文目錄一覽:
- 1、歌手打分 C語言編程
- 2、C語言:歌星大獎賽中,有十個評委為參賽的選手打分,分數為1-100分,選手最後得分為去掉一個最高分
- 3、幫忙寫下這個C語言程序歌星大獎賽
- 4、編寫一段C語言程序完成此題: 歌手大獎賽上有10個評委(放在一個數組中)打分,請設計一個通用程序,
歌手打分 C語言編程
//我的是用C++做的。
//SetScore.h
#ifndef SETSCORE_H_
#define SETSCORE_H_
#include string
using namespace std;
class Umpire
{
public:
Umpire();
~Umpire();
bool SetScore();
void GetName();
int GetScore();
private:
int m_Score;
string m_szName_Umpire;
};
struct Singer
{
string szName_Singer;
int MaxScore;
int MinScore;
double AveScore;
int Grade;
};
#endif//SETSCORE_H_
//SetScore.cpp—類與結構的實現文件。
#include iostream
#include string
#include vector
#include algorithm
#include “SetScore.h”
using namespace std;
//————————裁判類的實現———————
Umpire::Umpire()
:m_szName_Umpire(“No Name”),m_Score(0)
{}
void Umpire::GetName()
{
string name;
cinname;
m_szName_Umpire=name;
}
bool Umpire::SetScore()
{
//cout”Please Set Scores for Singer:[60,100].”endl;
int score;
cinscore;
if(score60||score100)
{
cout”你輸入了一個非法值。請輸入在[60,100]中的一個整數值。”endl;
return false;
}
m_Score=score;
return true;
}
int Umpire::GetScore()
{
return m_Score;
}
Umpire::~Umpire()
{}
//————————歌手類的實現———————
//本想也做一個類的,但考慮到順便練習一下結構的使用,
//就沒做類了。這裡的成員第一次使用時都將是左值,因此就不初始化了。
//Singer.AveScore=0;
//——————-全局函數聲明————————–
int main()
{
//————–裁判和歌手的信息初始化—=————-
const int nUmpireNum=4;//最少要有3名裁判。否則不能去掉最高與最低分。
const int nSingerNum=2;
//——————- 構造一個容器,用來將得分排序—–
vectordouble vec;
//——————-裁判——————————
cout”\n=====================裁判======================\n”;
Umpire *pUmpire=new Umpire[nUmpireNum];
//Umpire umpire[nUmpireNum];
for(int i=0;inUmpireNum;++i)
{
cout”Please Input a name for The (“i+1″/”nUmpireNum”) Umpire :”endl;
pUmpire[i].GetName();
}
//——————-歌手——————————
cout”\n=====================歌手======================\n”;
Singer singer[nSingerNum];
Singer* pSinger=singer;
for(int j=0;jnSingerNum;++j)
{
cout”Please Input a name for The (“j+1″/”nSingerNum”) Singer :”endl;
string name;
cinname;
pSinger[j].szName_Singer=name;
}
//——————-打分過程———————-
int nGetScorePerson(0);
while(nGetScorePersonnSingerNum)
{
cout”現在請給第 “nGetScorePerson+1″位歌手打分[60,100](共”nSingerNum”位):”endl;
int nScore[nUmpireNum],nMin(0),nMax(0),nSum(0);
//——————打分—————————–
for(int i=0;inUmpireNum;++i)
{
cout”請第”i+1″位裁判打分(共”nUmpireNum”位)”endl;
bool bValid=pUmpire[i].SetScore();
while(!bValid)
{//直到輸入正確才結束循環。
bValid=pUmpire[i].SetScore();
}
nScore[i]=pUmpire[i].GetScore();//記下每個裁判的打分。
}
//————–找到最低分,最高分。——————
nMin=nMax=nScore[0];
for(int j=0;jnUmpireNum;++j)
{
if(nMinnScore[j])
nMin=nScore[j];
if(nMaxnScore[j])
nMax=nScore[j];
nSum+=nScore[j];
}
pSinger[nGetScorePerson].MaxScore=nMax;
pSinger[nGetScorePerson].MinScore=nMin;
//—————算出平均值得分———————–
pSinger[nGetScorePerson].AveScore=(double)(nSum-nMin-nMax)/(nUmpireNum-2);
//————-將平均值放入容器中,用來排名次———
vec.push_back(pSinger[nGetScorePerson].AveScore);
//——————輸出格式(四項內容)————–
cout”歌手姓名—最終得分—最高得分—最低得分—\n “;
coutpSinger[nGetScorePerson].szName_Singer”—–“
pSinger[nGetScorePerson].AveScore”————–“
pSinger[nGetScorePerson].MaxScore”————–“
pSinger[nGetScorePerson].MinScore”—\n”;
//——————循環到下一位singer—————-
++nGetScorePerson;
}
sort(vec.begin(),vec.end());//排序,從小到大。
//================================================================
//==============下面就是輸出所有歌手排名信息的處理了==============
//================================================================
cout”\n=======排=================行===============榜========\n”endl;
cout”\n—-歌手姓名—————排–名—-\n “;
int nGrade(1);//用來排名次的。
for(int k=vec.size()-1;k=0;–k)
{
for(int i=0;inSingerNum;++i)
{
if(pSinger[i].AveScore==vec[k])
{
cout”——“pSinger[i].szName_Singer
“——————“”第”nGrade++”名”endl;
break;
}
}
}
delete [] pUmpire;
return 0;
}
C語言:歌星大獎賽中,有十個評委為參賽的選手打分,分數為1-100分,選手最後得分為去掉一個最高分
代碼如下
#include iostream
using namespace std;
int main()
{int a[10],f[10],i,k,m,n,b,c,y,p,q,d,average,h,g;
cout”輸入十位評委按順序的打分:”;
for(i=0;i10;i++)
{cina[i];
}
for(b=0;b10;b++)
{while(a[b]100||a[b]0)
{cout”選手得分超出規定範圍,請第”b+1″位評委重新打分!”endl;
cina[b];
}
}
m=a[0];n=a[0];
for(k=0,c=0;k9;k++)
{
if(m=a[k+1]) m=a[k+1];
if(n=a[k+1]) n=a[k+1];
c=c+a[k];
}
c=c+a[9];
y=c-m-n;
average=y/8;
for(p=0;p10;p++)
{f[p]=a[p]-average;
if(f[p]0) {f[p]=-f[p];}
}
q=f[0];d=f[0];
for(k=0,h=1;k9;k++)
{
if(q=f[k+1]) q=f[k+1] ,h=k+2;
if(d=f[k+1]) d=f[k+1],g=k+2;
}
cout”選手的平均分是”averageendl;
cout”最公平評委是第”g”位評委。”endl;
cout”最不公平評委是第”h”位評委。”endl;
return 0;
}
C語言代碼技巧
1、使用合適的條件語句
除代碼的可讀性之外,程序的執行時間還主要依賴於做決定時所選擇的條件結構類型。許多硬件工程師都熟悉簡單的if語句的使用。然而,有時工程師可能沒有意識到,如果第一個條件不正確,還可以使用else或else if語句。
2、用If/Else替代只用If
If/else if/else語句可能並不永遠適用。如果需要檢查若干個可能的條件,switch語句可能更合適。這樣,處理器可以評估語句,然後從一個答案列表中選擇下一步動作,而不用連續地評估一堆條件。
幫忙寫下這個C語言程序歌星大獎賽
#includestdio.h void score(int a[]) { int i; printf(“put in the score between 1 and 100”); for(i=0;i10;i++) { scanf(“%d”,a[i]); if(a[i]1||a[i]100) { printf(“put again the score between 1 and 100”); scanf(“%d”,a[i]); } } } void main() { int a[10],i,max,min,sum=0,average; score(a); max=min=a[0]; for(i=0;i10;i++) { if(a[i]max) max=a[i]; if(a[i]min) min=a[i]; } for(i=0;i10;i++) sum=sum+a[i]; sum=sum-max-min; average=sum/8; printf(“the average score is %d”,average); } 我自己寫的,絕對是正確的,我已經運行過了!
求採納
編寫一段C語言程序完成此題: 歌手大獎賽上有10個評委(放在一個數組中)打分,請設計一個通用程序,
#includestdio.h
#includeconio.h
#define _for(i,a,b) for(int i=a;ib;i++)
using namespace std;
int scores[10];
double average,maxn,minn=0x7f,imax,imin;
int main(){
system(“cls”);
_for(i,0,10){
printf(“Please input a score:”);
scanf(“%d”,scores[i]);
average+=scores[i];
if(maxnscores[i]){
maxn=scores[i];
imax=i;
}
if(minnscores[i]){
minn=scores[i];
imin=i;
}
printf(“\n”);
}
average-=maxn+minn;
average/=8.0;
printf(“\nThe average: %.6lf\n”,average);
printf(“The max: %.6lf\n”,maxn);
printf(“The min: %.6lf\n”,minn);
_for(i,0,10){
if(scores[i]average){
printf(“%d,%.6lf\n”,i+1,double(maxn));
}
}
printf(“max: %d,%.6lf\n”,imax+1,maxn);
printf(“min: %d,%.6lf\n\n”,imin+1,minn);
printf(“Next singer? y or Y: “);
char k=getch();
if(k==’y’ || k==’Y’)main();
return 0;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/196030.html