當前位置:編程學習大全網 - 編程語言 - C語言題:十個評委給歌手打分,去掉壹個最高分與最低分求最後得分

C語言題:十個評委給歌手打分,去掉壹個最高分與最低分求最後得分

#include?<stdio.h>

#include?<conio.h>

#define?ARR_LEN?255?/*數組長度上限*/

#define?elemType?float?/*元素類型*/

/*?冒泡排序?*/

/*?1.?從當前元素起,向後依次比較每壹對相鄰元素,若逆序則交換?*/

/*?2.?對所有元素均重復以上步驟,直至最後壹個元素?*/

/*?elemType?arr[]:?排序目標數組;?int?len:?元素個數?*/

void?bubbleSort?(elemType?arr[],?int?len)?{

elemType?temp;

int?i,?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:?元素個數?*/

void?inputArray?(elemType?arr[],?int?len)?{

int?i;

for?(i=0;?i<len;?i++)

scanf?("%f",?&arr[i]);

putchar?('\n');

}

/*?打印數組內容?*/

/*?arr[]:?打印目標數組;?len:?元素個數?*/

void?printArray?(elemType?arr[],?int?len)?{

int?i;

for?(i=0;?i<len;?i++)

printf?("%.1f\t",?arr[i]);

putchar?('\n');

}

/*?去掉壹個最高分,去掉壹個最低分,然後求平均分?*/

/*?arr[]:?目標數組;?len:?元素個數?*/

void?calcArray?(elemType?arr[],?int?len,?elemType?*max,?elemType?*min,?float?*avg)?{

int?i;

elemType?sum;?

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);

}

int?main?(void)?{

//elemType?score[ARR_LEN];?/*?成績數組?*/

elemType?score[ARR_LEN]?=?{95.0,88.0,72.0,96.0,74.0};

int?len?=?5;?/*?5名評委?*/

elemType?max,?min,?avg;?/*?最高分、最低分、平均分?*/

int?i;

//printf?("輸入%d名評委打分:\n",?len);

//inputArray?(score,?len);

printf?("%d名評委打分:\t",?len);

printArray?(score,?len);

calcArray?(score,?len,?&max,?&min,?&avg);

printf?("去掉壹個最高分:\t%.1f分\n去掉壹個最低分:\t%.1f分\n此名選手最終得分:\t%.1f分",?max,?min,?avg);

getch?();?/*屏幕暫留*/

return?0;

}

  • 上一篇:求UG8.0 64位安裝包,謝謝。
  • 下一篇:oracle 怎麽修改最大連接數
  • copyright 2024編程學習大全網