鱼C论坛

 找回密码
 立即注册
查看: 2355|回复: 2

[已解决]c语言

[复制链接]
发表于 2019-11-26 21:15:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
体操比赛,有 10 个裁判,一个运动员做完动作后,10 个裁判亮分(总分 10 分,程 序则接收这 10 个数据,求平均分的原则,记录该运动员的成绩,并按删除一个最高分、 一个最低分,再求平均的原则计算最终成绩,并显示在屏幕上,精确到小数点后 2 位。请 用循环结构及数组编程。
咋做!!!!!!!!!!
最佳答案
2019-11-26 22:24:43
#include <stdio.h>

void swap(float * a , float * b)
{
        float t   ;
        t = * a   ;
        * a = * b ;
        * b = t   ;  
}

main(void)
{
          float d[10] , sum , average                                                                                            ;
          int k                                                                                                                  ;
          printf("输入10个评分:")                                                                                               ;
          scanf("%f%f%f%f%f%f%f%f%f%f" , & d[0] , & d[1] , & d[2] , & d[3] , & d[4] , & d[5] , & d[6] , & d[7] , &d[8] , & d[9]) ;
          if(d[0] > d[9]) swap(& d[0] , & d[9])                                                                                  ;
          for(k = 1 ; k < 9 ; k ++) {
                  if(d[k] < d[0]) swap(& d[0] , & d[k])                                                                          ;
                  else if(d[k] > d[9]) swap(& d[k] , & d[9])                                                                     ;
          }
          for(sum = 0.0 , k = 1 ; k < 9 ; k ++) sum += d[k]                                                                      ;          
          average = sum / 8                                                                                                      ;
          printf("去掉最低分 %.2f , 去掉最高分 %.2f , 平均得分 %.2f\n" , d[0] , d[9] , 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>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-26 22:24:43 | 显示全部楼层    本楼为最佳答案   
#include <stdio.h>

void swap(float * a , float * b)
{
        float t   ;
        t = * a   ;
        * a = * b ;
        * b = t   ;  
}

main(void)
{
          float d[10] , sum , average                                                                                            ;
          int k                                                                                                                  ;
          printf("输入10个评分:")                                                                                               ;
          scanf("%f%f%f%f%f%f%f%f%f%f" , & d[0] , & d[1] , & d[2] , & d[3] , & d[4] , & d[5] , & d[6] , & d[7] , &d[8] , & d[9]) ;
          if(d[0] > d[9]) swap(& d[0] , & d[9])                                                                                  ;
          for(k = 1 ; k < 9 ; k ++) {
                  if(d[k] < d[0]) swap(& d[0] , & d[k])                                                                          ;
                  else if(d[k] > d[9]) swap(& d[k] , & d[9])                                                                     ;
          }
          for(sum = 0.0 , k = 1 ; k < 9 ; k ++) sum += d[k]                                                                      ;          
          average = sum / 8                                                                                                      ;
          printf("去掉最低分 %.2f , 去掉最高分 %.2f , 平均得分 %.2f\n" , d[0] , d[9] , 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>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-27 22:56:12 | 显示全部楼层
#include <stdio.h>
int main()
{
        int i;
        float n,ave,sum=0,a[10];
        printf("请输入10个评分:");
        for(i=0;i<10;i++)
        scanf("%f",&a[i]);
        for(i=0;i<10;i++)
        sum=sum+a[i];
        for(i=0;i<9;i++)
        {
                if(a[i]>a[i+1])
                {
                        n=a[i];
                        a[i]=a[i+1];
                        a[i+1]=n;
                }
        }
        sum=sum-a[i];
        printf("去掉最高分%f\n",a[i]);
        for(i=0;i<9;i++)
        {
                if(a[i]<a[i+1])
                {
                        n=a[i];
                        a[i]=a[i+1];
                        a[i+1]=n;
                }
        }
        sum=sum-a[i];
        printf("去掉最低分%f\n",a[i]);
        ave=sum/8;
        printf("平均分为: %.2f",ave);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 18:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表