評委打分c語言
⑴ c語言題:十個評委給歌手打分,去掉一個最高分與最低分求最後得分
#include<stdio.h>
#include<conio.h>
#defineARR_LEN255/*數組長度上限*/
#defineelemTypefloat/*元素類型*/
/*冒泡排序*/
/*1.從當前元素起,向後依次比較每一對相鄰元素,若逆序則交換*/
/*2.對所有元素均重復以上步驟,直至最後一個元素*/
/*elemTypearr[]:排序目標數組;intlen:元素個數*/
voidbubbleSort(elemTypearr[],intlen){
elemTypetemp;
inti,j;
for(i=0;i<len-1;i++)/*外循環為排序趟數,len個數進行len-1趟*/
for(j=0;j<len-1-i;j++){/*內循環為每趟比較的次數,第i趟比較len-i次*/
if(arr[j]>arr[j+1]){/*相鄰元素比較,若逆序則交換(升序為左大於右,逆序反之)*/
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
/*輸入數組*/
/*arr[]:輸入目標數組;len:元素個數*/
voidinputArray(elemTypearr[],intlen){
inti;
for(i=0;i<len;i++)
scanf("%f",&arr[i]);
putchar(' ');
}
/*列印數組內容*/
/*arr[]:列印目標數組;len:元素個數*/
voidprintArray(elemTypearr[],intlen){
inti;
for(i=0;i<len;i++)
printf("%.1f ",arr[i]);
putchar(' ');
}
/*去掉一個最高分,去掉一個最低分,然後求平均分*/
/*arr[]:目標數組;len:元素個數*/
voidcalcArray(elemTypearr[],intlen,elemType*max,elemType*min,float*avg){
inti;
elemTypesum;
bubbleSort(arr,len);/*對數組排序,此後首、尾兩元素即待被去掉的一個最高分、一個最低分*/
*max=arr[len-2];
*min=arr[1];
sum=*avg=0;
for(i=1;i<len-1;i++)
sum+=arr[i];
*avg=sum/(len-2);
}
intmain(void){
//elemTypescore[ARR_LEN];/*成績數組*/
elemTypescore[ARR_LEN]={95.0,88.0,72.0,96.0,74.0};
intlen=5;/*5名評委*/
elemTypemax,min,avg;/*最高分、最低分、平均分*/
inti;
//printf("輸入%d名評委打分: ",len);
//inputArray(score,len);
printf("%d名評委打分: ",len);
printArray(score,len);
calcArray(score,len,&max,&min,&avg);
printf("去掉一個最高分: %.1f分 去掉一個最低分: %.1f分 此名選手最終得分: %.1f分",max,min,avg);
getch();/*屏幕暫留*/
return0;
}
⑵ 用C語言編程:歌手大獎賽有10名評委打分,去掉一個最高分、去掉一個最低分,求選手的平均分。
#include<stdio.h>
int s_min(int a[]);
int s_max(int a[]);
main()
{
float a[10],min,max,s=0;//定義一個數組用來存放10個評委的分數。定義的min,max,是用來超查找最高分和最低分的。
int i;
printf("請輸入10個評委的分數:\n");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
min=s_min(a);
max=s_max(a);//調用函數找出低分和最高分。
printf("去掉一個最高分%g,去掉一個最低分%g\n",max,min);
for(i=0;i<10;i++)
if(a[i]!=min&&a[i]!=max) //把最高分和最低分不計算進去
s=s+a[i];
printf("最後的得分是%g\n",s/8);
}
float s_min(float a[])
{
int i;
float min=a[0];
for(i=0;i<10;i++)
if(a[i]<min)
min=a[i];
return min;
}
float s_max(float a[])
{
int i;
float max=a[0];
for(i=0;i<10;i++)
if(a[i]>max)
max=a[i];
return max;
}
⑶ C語言,就是青年歌手參加歌曲大獎賽,有10個評委進行打分,試編程求這位選手的平均得分。
i應該是整形,所以銀禪腔應該將其定義為int i。修改後代碼為:
#include <stdio.h>
int main()
{
float x[10],avg,max,min,sum,a;
for (int i=0;i<10;i++)
{
scanf(" %f",&x[10]);
if( i==0)
{
max=x[0];
min=x[0];
}
if (x[i]>max) max=x[i];
if (x[i]<min) min=x[i];
sum+=x[i];
}
a=(sum-max-min)/8;
printf("%.2f",a);
}
(3)評委打分c語言擴展閱讀:
for循環注意事項
1、for循環中的變數可以是一個也可以是多個,不要局限於一個變數處理到底,那樣有時會很單調,當程序適合把多個變數組成循環時,用多個for語句來表示就是有些浪費;
2、for循環中語句可以為語句體, 語句體外加大括弧"{}"將參加循環的語句括起來。for循環的三個表鋒衫達式都是逗號表達式,這樣來說,其實每個分號表達式可以由幾個逗號表達式構成,中間用",」隔開,最後以「;」結束。
3、for循環襲肢中的"單次表達式"、"條件表達式"和"循環體語句"都是選擇項, 即可以預設成只剩下「;」的空語句, ";"不能預設的原因是編譯格式如此,預設了編譯器不認識而會報錯。
網路-for循環
⑷ C語言編程題:歌唱比賽十個評委打分,請求出其中的最高分和最低分並進行輸出(要求從鍵盤接收數據)。
#include<stdio.h>
intmain(void)
{
floata[10],temp;
printf("請輸入分數: ");
inti,j;
for(i=0;i<10;i++)
{
scanf("%f",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("最高分:%.2f 最低分:%.2f ",a[0],a[9]);
return0;
}