评委打分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;
}