生活随笔
收集整理的這篇文章主要介紹了
结构体:歌手投票
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
有10名歌手(編號為1-10)參加歌詠比賽,另有6名評委打分,每位歌手的得分從鍵盤輸入:先提示“Please input singer’s score: ”,再依次輸入第1個歌手的6位評委打分(10分制,分數為整型,分數之間使用空格分隔),第2個歌手的6位評委打分…以此類推。計算出每位歌手的最終得分(扣除一個最高分和一個最低分后的平均分,最終得分保留2位小數),最后按最終得分由高到低的順序輸出每位歌手的編號及最終得分
分析:
明顯運用結構體進行代碼功能實現,因為包含的元素很多。
且都為整體,運用結構體清晰明了、簡單。
代碼段:
#include <stdio.h>typedef struct _singer
{int number
;int score
[6];float average
;
} singer
;int main(void)
{int i
, j
, sum
, min
, max
;singer temp
;singer people
[10];for (i
= 0; i
< 10; i
++){people
[i
].number
= i
+ 1;}printf("Please input singer's score: ");for (i
= 0; i
< 10; i
++){for (j
= 0; j
< 6; j
++){scanf("%d", &people
[i
].score
[j
]);if(people
[i
].score
[j
] > 10 || people
[i
].score
[j
] < 0){printf("output:\n成績必須為10分制:\n");return 0;}}}for (i
= 0; i
< 10; i
++){sum
= 0;min
= max
= people
[i
].score
[0];for (j
= 0; j
< 6; j
++){if (min
> people
[i
].score
[j
]){min
= people
[i
].score
[j
];}if (max
< people
[i
].score
[j
]){max
= people
[i
].score
[j
];}sum
= sum
+ people
[i
].score
[j
];}people
[i
].average
= (float)((sum
- min
- max
) / 4.0);}for (i
= 0; i
< 10; i
++){for (j
= 0; j
< 10 - i
- 1; j
++){if (people
[j
].average
< people
[j
+ 1].average
){temp
= people
[j
];people
[j
] = people
[j
+ 1];people
[j
+ 1] = temp
;}}}printf("output:\nscores:\n");for (i
= 0; i
< 10; i
++){printf("No.%d:%.2f\n", people
[i
].number
, people
[i
].average
);}return 0;
}
每段的代碼功能分析都在代碼段中。
總結
以上是生活随笔為你收集整理的结构体:歌手投票的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。