m0_64951694 2022-03-20 11:42 采纳率: 83.3%
浏览 124
已结题

将数组中元素最大的值和第一个数组元素交换位置,最小的值和最后一个交换位置

想实现数组中最大值和与第一个数组元素交换位置,最小的元素和最后一个值交换位置,但是运行结束后却没有结果,希望各位能帮忙看一看问题出在哪里了
#include <stdio.h>

int main() {
int a[5];
int i, t, max, min;

for (i = 0; i < 5; i++) {
    scanf("%d", &a[i]);
}


max = a[0];
min = a[4];

for (i = 0; i < 5; i++) {
    if (a[i] > max)
        t = i;
}

if (t != 0) {
    a[0] = a[t];
    a[t] = max;
}

t = 0;

for (i = 0; i < 5; i++) {
    if (a[i] < min)
        t = i;
}

if (t != 4) {
    a[4] = a[t];
    a[t] = min;
}

printf("%s", a);

return 0;

}

  • 写回答

1条回答 默认 最新

  • 谛凌 2022-03-20 12:19
    关注

    交换逻辑不太对,然后你最后也没输出

    #include <stdio.h>
    int main() 
    {
        int a[5];
        int i, t=0, max, min;
        for (i = 0; i < 5; i++) {
            scanf("%d", &a[i]);
        }
        max = a[0];
        min = a[4];
        for (i = 0; i < 5; i++) {
            if (a[i] > max){
                max = a[i];
                t = i;
            }
        }
        int tem=a[0];
        a[0] = a[t];
        a[t] = tem;
        t = 4;
        for (i = 0; i < 5; i++) {
            if (a[i] < min){
                t = i;
                min = a[i];
            }
        }
        tem = a[4];
        a[4] = a[t];
        a[t] = tem;
        for(i=0;i<5;i++)
            printf("%d ",a[i]);
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月28日
  • 已采纳回答 3月20日
  • 创建了问题 3月20日

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)