「已注销」 2018-11-28 14:34 采纳率: 100%
浏览 387
已采纳

新人求解为什么无法输出?

输入一组数,去掉两个最大的数和两个最小的数,求剩余数平均值

 #include <stdio.h>
int main()
{
    int a[20],s=0,i,j,t,o;
    float p;
    for(i=1;i!=0;i++)
    {
        scanf("%d",&a[i]);
        if(a[i]==0)
        {
            i=0;/*如果输入的数是0,输入结束*/
        }
    }
    t=i-1;
    for(i=1;i<t;i++)/*对输入的数据从小到大排序*/
        for(j=i+1;j<t;j++)
        {
              if(a[i]>a[j])
            {
                o=a[i];
                a[i]=a[j];
                a[j]=o;
            }
        }
    for(j=3;j<t-2;j++)
    {
        s=s+a[j];/*求第三个数据到倒数第三个数据的和*/
    }
    p=s/(t-4);/*求平均数*/
    printf("%.2f",p);
    return 0;
}
  • 写回答

1条回答 默认 最新

  • threenewbee 2018-11-28 14:49
    关注

    之前的问题你可能忘记采纳了,帮我采纳下好么。

    你的程序总是怪怪的。我尽量按照你的思路修改吧。最好按照通常的思路写。

    #include <stdio.h>
    int main()
    {
        int a[20],s=0,i,j,t = 0,o;
        float p;
        for(i=1;i!=0;t++,i++)
        {
            scanf("%d",&a[i]);
            if(a[i]==0)
            {
                i=-1;/*如果输入的数是0,输入结束*/
            }
        }
        for(i=1;i<t;i++)/*对输入的数据从小到大排序*/
            for(j=1;j<t;j++)
            {
                  if(a[j-1]>a[j])
                {
                    o=a[j-1];
                    a[j-1]=a[j];
                    a[j]=o;
                }
            }
        for(j=3;j<t-2;j++)
        {
            s=s+a[j];/*求第三个数据到倒数第三个数据的和*/
        }
        p=s/(float)(t-5);/*求平均数*/
        printf("%.2f",p);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法