c语言
体操比赛,有 10 个裁判,一个运动员做完动作后,10 个裁判亮分(总分 10 分,程 序则接收这 10 个数据,求平均分的原则,记录该运动员的成绩,并按删除一个最高分、 一个最低分,再求平均的原则计算最终成绩,并显示在屏幕上,精确到小数点后 2 位。请 用循环结构及数组编程。咋做!!!!!!!!!! #include <stdio.h>
void swap(float * a , float * b)
{
float t ;
t = * a ;
* a = * b ;
* b = t ;
}
main(void)
{
float d , sum , average ;
int k ;
printf("输入10个评分:") ;
scanf("%f%f%f%f%f%f%f%f%f%f" , & d , & d , & d , & d , & d , & d , & d , & d , &d , & d) ;
if(d > d) swap(& d , & d) ;
for(k = 1 ; k < 9 ; k ++) {
if(d < d) swap(& d , & d) ;
else if(d > d) swap(& d , & d) ;
}
for(sum = 0.0 , k = 1 ; k < 9 ; k ++) sum += d ;
average = sum / 8 ;
printf("去掉最低分 %.2f , 去掉最高分 %.2f , 平均得分 %.2f\n" , d , d , average) ;
}
编译、运行实况:
C:\Bin>g++ -static -o x x.c
C:\Bin>x
输入10个评分:9.8 9.0 9.95 9.3 9.2 9.3 9.5 9.0 8.9 9.7
去掉最低分 8.90 , 去掉最高分 9.95 , 平均得分 9.35
C:\Bin> #include <stdio.h>
int main()
{
int i;
float n,ave,sum=0,a;
printf("请输入10个评分:");
for(i=0;i<10;i++)
scanf("%f",&a);
for(i=0;i<10;i++)
sum=sum+a;
for(i=0;i<9;i++)
{
if(a>a)
{
n=a;
a=a;
a=n;
}
}
sum=sum-a;
printf("去掉最高分%f\n",a);
for(i=0;i<9;i++)
{
if(a<a)
{
n=a;
a=a;
a=n;
}
}
sum=sum-a;
printf("去掉最低分%f\n",a);
ave=sum/8;
printf("平均分为: %.2f",ave);
}
页:
[1]