/*??編寫一程序P415.C實(shí)現(xiàn)以下功能
? 設(shè)有10名歌手(編號(hào)為1-10)參加歌詠比賽,另有6名評(píng)委打分,每位歌手的得分從鍵盤輸入:先提示“Please?input?singer's?score:?”,再依次輸入第1個(gè)歌手的6位評(píng)委打分(10分制,分?jǐn)?shù)為整型,分?jǐn)?shù)之間使用空格分隔),
?第2個(gè)歌手的6位評(píng)委打分...以此類推。計(jì)算出每位歌手的最終得分(扣除一個(gè)最高分和一個(gè)最低分后的平均分,最終得分保留2位小數(shù)),最后按最終得分由高到低的順序輸出每位歌手的編號(hào)及最終得分。
? 注意:變量數(shù)據(jù)類型的選擇應(yīng)適當(dāng),在保證滿足設(shè)計(jì)要求精度的情況下,養(yǎng)成不浪費(fèi)內(nèi)存空間和計(jì)算時(shí)間的好習(xí)慣。
?編程可用素材:printf?("Please?input?singer's?score:\n")、printf("\nscores:\n")、
?printf("No.…:?…。
? 程序的運(yùn)行效果應(yīng)類似地如圖1所示,其中的紅色部分是從鍵盤輸入的內(nèi)容。?*/
/*
1?4?7?3?6?3
8?7?8?5?9?8
7?5?6?8?5?4
7?6?7?5?6?5
3?5?6?7?5?5
7?7?7?8?9?6
9?4?3?7?3?6
4?8?6?7?5?8
8?7?8?8?9?8
7?7?6?7?6?8
*/
#include<stdio.h>
int?main(void)
{
?int?score[10][6],i,j,max,imax,min,imin;//定義分?jǐn)?shù),循環(huán)控制i,j;最大max,最大時(shí)的i值,最小值,最小值時(shí)的i值
?float?countave[10][2],temp2,temp;//定義每個(gè)人的平均值;countave[I][0]為分?jǐn)?shù),[1]為編號(hào)
?float?sum;//去掉最高最低分后的總和。
?printf("Please?input?singer's?score:\n");
?for(i=0;i<10;i++)
?{
??scanf("%d?%d?%d?%d?%d?%d",&score[i][0],&score[i][1],&score[i][2],&score[i][3],&score[i][4],&score[i][5]);
?}
?for(i=0;i<=9;i++)
?{??max=score[i][0];
???imax=0;
???min=score[i][0];
???imin=0;
??for(j=0;j<=5;j++)
??{
???if(score[i][j]>=max)
???{max=score[i][j];imax=j;}
??
??}
??for(j=0;j<=5;j++)
??{
???if(score[i][j]<=min)
???{min=score[i][j];imin=j;}
??}
?
??score[i][imax]=0;
??score[i][imin]=0;
??sum=score[i][0]+score[i][1]+score[i][2]+score[i][3]+score[i][4]+score[i][5];
??//當(dāng)定義sum為float時(shí)會(huì)報(bào):從int到float的強(qiáng)制轉(zhuǎn)換會(huì)丟失數(shù)據(jù)的警告(后面的數(shù)組都是整型)【不能有警告】,但是我要使得下面countave的運(yùn)算結(jié)果有小數(shù)點(diǎn),這道題如果用double的話得分為0:【未實(shí)現(xiàn):數(shù)據(jù)類型的選擇應(yīng)考慮空間和時(shí)間開銷,本程序不應(yīng)使用double類型】,定義sum為int的話,為什么float定義的countave沒有小數(shù)點(diǎn)呢?我該怎么做呢?(VC++6.0)。感謝大佬!強(qiáng)制轉(zhuǎn)換問題到底是為什么會(huì)出現(xiàn)呢?~
??countave[i][0]=sum/4;
??countave[i][1]=i;
?}
?printf("\nscores:\n");
?for(i=0;i<=9;i++)
?{
??for(j=1;j<=9;j++)
??{
???if(countave[j][0]<countave[j-1][0])
???{
????temp=countave[j][0];
????countave[j][0]=countave[j-1][0];
????countave[j-1][0]=temp;
????temp2=countave[j][1];
????countave[j][1]=countave[j-1][1];
????countave[j-1][1]=temp2;
???}
??}
?}
?
?for(i=9;i>=0;i--)
?{
??printf("NO.%.0lf:%.2lf\n",countave[i][1]+1,countave[i][0]);
??count--;
?}
?
?
?return?0;
}感謝大佬幫助!初學(xué)C,請(qǐng)多包涵!
- 1 回答
- 0 關(guān)注
- 1611 瀏覽
添加回答
舉報(bào)
0/150
提交
取消