❶ 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);
}
(1)c语言编程10个评委扩展阅读:
for循环注意事项
1、for循环中的变量可以是一个也可以是多个,不要局限于一个变量处理到底,那样有时会很单调,当程序适合把多个变量组成循环时,用多个for语句来表示就是有些浪费;
2、for循环中语句可以为语句体, 语句体外加大括号"{}"将参加循环的语句括起来。for循环的三个表达式都是逗号表达式,这样来说,其实每个分号表达式可以由几个逗号表达式构成,中间用",”隔开,最后以“;”结束。
3、for循环中的"单次表达式"、"条件表达式"和"循环体语句"都是选择项, 即可以缺省成只剩下“;”的空语句, ";"不能缺省的原因是编译格式如此,缺省了编译器不认识而会报错。
网络-for循环
❷ 用C语言编程,输入10个评委得分,去掉一个最高分和最低分,输出最终评委得分。
#include<stdio.h>
void main()
{ int i,a[10],sum=0,j,t;
float avg;
for(i=0;i<10;i++) scanf("%d",&a[i]); /*输入*/
for(i=0;i<10;i++)
for(j=0;j<9;j++)
if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} /*排序*/
for(i=0;i<10;i++) printf("%d ",a[i]); /*去掉一个最高分和最低分*/
for(i=1;i<9;i++) sum+=a[i];
avg=(float)sum/8; /*求平均分*/
printf("平均分是 %f ",avg);
}
❸ 用C语言编程:有10个评委对进行打分,试编程求平均得分(去掉一个最高分和一个最低。
先进行数列排序,再取中间8个值求平均分
main()
{
int i,j,temp,n;
int a[10];
for(i=0;i<10;i++) //输入
scanf ("%d,",&a[i]);
for(j=0;j<=9;j++) //冒泡排序
{
for (i=0;i<10-j;i++)
if (a[i]>a[i+1])
{ temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
for(i=1;i<10;i++) //排好后输出数列
printf("%5d,",a[i] );
printf("\n");
n=0;
for(i=1;i<9;i++) n=n+a[i]; //中间8个数的总和
printf(n/8); //输出平均数
}
❹ c语言编程:十个评委五个参赛选手,求每个选手的平均分,最高分和最低分
#include<stdio.h>
intmain()
{
floata[5][10],max,min,sum;
inti,j;
for(i=0;i<5;i++)
{
printf("请输入第%d位参赛选手的成绩 ",i+1);//本行语句可删除
for(j=0;j<10;j++)
{
printf("请输入第%d位评委的评分:",j+1);//本行语句可删除
scanf("%f",&a[i][j]);
}
}
for(i=0;i<5;i++)
{
max=a[i][j];
min=a[i][j];
for(j=0;j<10;j++)
{
if(max-a[i][j]<0)
max=a[i][j];
if(min-a[i][j]>0)
min=a[i][j];
sum+=a[i][j];
}
printf("第%d位参赛选手的平均分为:%f ",i+1,sum/10);
printf("第%d位参赛选手的最高分为:%f ",i+1,max);
printf("第%d位参赛选手的最低分为:%f ",i+1,min);
}
return0;
}
❺ C语言:歌星大奖赛中,有十个评委为参赛的选手打分,分数为1-100分,选手最后得分为去掉一个最高分
代码如下
#include <iostream>
using namespace std;
int main()
{int a[10],f[10],i,k,m,n,b,c,y,p,q,d,average,h,g;
cout<<"输入十位评委按顺序的打分:";
for(i=0;i<10;i++)
{cin>>a[i];
}
for(b=0;b<10;b++)
{while(a[b]>100||a[b]<0)
{cout<<"选手得分超出规定范围,请第"<<b+1<<"位评委重新打分!"<<endl;
cin>>a[b];
}
}
m=a[0];n=a[0];
for(k=0,c=0;k<9;k++)
{
if(m<=a[k+1]) m=a[k+1];
if(n>=a[k+1]) n=a[k+1];
c=c+a[k];
}
c=c+a[9];
y=c-m-n;
average=y/8;
for(p=0;p<10;p++)
{f[p]=a[p]-average;
if(f[p]<0) {f[p]=-f[p];}
}
q=f[0];d=f[0];
for(k=0,h=1;k<9;k++)
{
if(q<=f[k+1]) q=f[k+1] ,h=k+2;
if(d>=f[k+1]) d=f[k+1],g=k+2;
}
cout<<"选手的平均分是"<<average<<endl;
cout<<"最公平评委是第"<<g<<"位评委。"<<endl;
cout<<"最不公平评委是第"<<h<<"位评委。"<<endl;
return 0;
}
C语言代码技巧
1、使用合适的条件语句
除代码的可读性之外,程序的执行时间还主要依赖于做决定时所选择的条件结构类型。许多硬件工程师都熟悉简单的if语句的使用。然而,有时工程师可能没有意识到,如果第一个条件不正确,还可以使用else或else if语句。
2、用If/Else替代只用If
If/else if/else语句可能并不永远适用。如果需要检查若干个可能的条件,switch语句可能更合适。这样,处理器可以评估语句,然后从一个答案列表中选择下一步动作,而不用连续地评估一堆条件。
❻ (用C语言编程)求十位评委对选手打分的平均得分(去掉最低分和最高分)
float score[10] = {};//存放所有得分,初始为0
float min= score[0],max = score[0];//让最小和最大都等于第一个评委
float all = 0,mean;//总分和平均分
for(int i = 0;i < 10;++i)
{
printf("输入第%位评审的得分:",i);
scanf("%f",&score[i]);
if(score[i] < min) //如果比min小就让最小值等于它
min = score[i];
if(score[i] > max)//如果比max大,就让最大值等于它
max = score[i];
}
for(int i = 0;i < 10;++i)
{
if(score[i] != min && score[i] != max)//遍历数组,不等于最值就加到总分上
all += score[i];
}
mean = all / 8;//得到平均分
❼ 编写一段C语言程序完成此题: 歌手大奖赛上有10个评委(放在一个数组中)打分,请设计一个通用程序,
#include<stdio.h>
#include<conio.h>
#define _for(i,a,b) for(int i=a;i<b;i++)
using namespace std;
int scores[10];
double average,maxn,minn=0x7f,imax,imin;
int main(){
system("cls");
_for(i,0,10){
printf("Please input a score:");
scanf("%d",&scores[i]);
average+=scores[i];
if(maxn<scores[i]){
maxn=scores[i];
imax=i;
}
if(minn>scores[i]){
minn=scores[i];
imin=i;
}
printf("\n");
}
average-=maxn+minn;
average/=8.0;
printf("\nThe average: %.6lf\n",average);
printf("The max: %.6lf\n",maxn);
printf("The min: %.6lf\n",minn);
_for(i,0,10){
if(scores[i]>average){
printf("%d,%.6lf\n",i+1,double(maxn));
}
}
printf("max: %d,%.6lf\n",imax+1,maxn);
printf("min: %d,%.6lf\n\n",imin+1,minn);
printf("Next singer? < y or Y>: ");
char k=getch();
if(k=='y' || k=='Y')main();
return 0;
}
❽ 用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个评委的给分中,去掉一个最高分,去掉一个最低分,剩余8个分数求平均值。请编程实现之
#include<stdio.h>
int main()
{
int integer,i,max,min,sum;
max=-32768; /*先假设当前的最大值max为C语言整型数的最小值*/
min=32767; /*先假设当前的最小值min为C语言整型数的最大值*/
sum=0; /*将求累加和变量的初值置为0*/
for(i=1;i<=10;i++)
{
printf("Input number %d=",i);
scanf("%d",&integer); /*输入评委的评分*/
sum+=integer; /*计算总分*/
if(integer>max)max=integer; /*通过比较筛选出其中的最高分*/
if(integer<min)min=integer; /*通过比较筛选出其中的最低分*/
}
printf("Canceled max score:%d\nCanceled min score:%d\n",max,min);
printf("Average score:%d\n",(sum-max-min)/8); /*输出结果*/
}
*运行结果
Input number1=90
Input number2=91
Input number3=93
Input number4=94
Input number5=90
Input number6=99
Input number7=97
Input number8=92
Input number9=91
Input number10=95
Canceled max score:99
Canceled min score:90
Average score:92
❿ C语言编程:十个评委分别为十位歌手评分,去掉一个最高分,去掉一个最低分,求剩下分数的平均值
#include<stdio.h>
#include<stdlib.h>
#defineNUM 10
intfindMax(int*buf)
{
intindex=0,max=buf[0];
for(inti=1;i<NUM;i++)
{
if(buf[i]>max)
{
index=i;
}
}
returnindex;
}
intfindMin(int*buf)
{
intindex=0,min=buf[0];
for(inti=1;i<NUM;i++)
{
if(buf[i]<min)
{
index=i;
}
}
returnindex;
}
intmain(void)
{
intscore[NUM]={0};
intmaxIndex=0,minIndex=0;
doubleavr=0.0;
for(inti=0;i<NUM;i++)
{
printf("输入第%d位歌手分数:",i+1);
scanf("%d",score+i);
}
maxIndex=findMax(score);
minIndex=findMin(score);
for(i=0;i<NUM;i++)
{
if(i!=maxIndex&&i!=minIndex)
{
avr+=score[i];
}
}
avr/=8;
printf("去掉最低和最高分后的平均分为%lf。",avr);
return0;
}