music_song 2022-11-29 18:20 采纳率: 87.2%
浏览 40
已结题

一道河北专升本c语言真题

为什么运行出来平均值地方会有乱数

img


#include<stdio.h>
int main()
{
    struct city{
        char name[10];
        float heat[4],average;
    }aim[10],moment;
    int i,j;
    //float moment;
    for(i=0;i<10;i++)
    {
        //printf("请输入第%d个城市的信息:",i+1);
        scanf("%s",aim[i].name);
        for(j=0;j<4;j++)
        {
            scanf("%f",&aim[i].heat[j]);
            aim[i].average+=aim[i].heat[j];
        }
        aim[i].average/=4;
    }
    
    for(i=0;i<10;i++)//选择排序法 
    {
        for(j=i+1;j<10;j++)
        {
            if(aim[i].average>aim[j].average)//把最小的值移动到第一位
            {
                moment=aim[i];
                aim[i]=aim[j];
                aim[j]=moment;
            }
        }
        printf("\n%s",aim[i].name);//输出小的一项 
        for(j=0;j<4;j++)
        {
            printf("\t%0.2f",aim[i].heat[j]);
        }
        printf("\t%0.2f",aim[i].average);
    }
   return 0;
}

img

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-11-29 18:32
    关注

    aim[i].average+=aim[i].heat[j];
    这个average你没有初始化为0啊。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月8日
  • 已采纳回答 11月30日
  • 创建了问题 11月29日