Drk_Z 2022-02-01 21:27 采纳率: 71.4%
浏览 36
已结题

第一行输入n《=10;第二行输入n个整数;然后经行调序,使输入的数字中的最大值和最小值分别放在最左和最右 其他数字对应的移项,,求指出错误

#include<stdio.h>

int main(void)
{
    int i,j,n,k,t,l;
    int min,max;
    int a[10];
    scanf("%d",&n);
    
    min=10000000;
    max=-10000000;
    
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);     //输入数组各项的值 
        if(a[i]>max)
        {
            max=a[i];       //找出最大的数组值及其下标数值 
            t=i;
        }
        if(a[i]<min)
        {
            min=a[i];       //找出最小的数组值及其下标数值 
            l=i;
        }
    }
    for(j=0;j<t;j++)           //最小值左侧整体右移 
    {
        a[j+1]=a[j];
        a[0]=min;
    }
    for(k=n-1;k>l;k--)          //最大值右侧整体左移 
    {
        a[k-1]=a[k];
        a[n-1]=max;
    }
    for(i=0;i<n;i++)
    {
        printf("%d",a[i]);       //调序后的结果 
    }
    return 0;
}

  • 写回答

2条回答 默认 最新

  • _GX_ 2022-02-02 00:22
    关注

    你应该把最小值和最大值的查找移位分开了操作,否则的话最大值或最小值的位置可能因为移位改变位置。

    #include <stdio.h>
    
    int main()
    {
        const int N = 10;
        int a[N], n;
        scanf("%d", &n);
        for (int i = 0; i < n; i++)
            scanf("%d", &a[i]);
    
        int min = a[0];
        int j = 0;
        for (int i = 1; i < n; i++)
        {
            if (a[i] < min)
            {
                min = a[i];
                j = i;
            }
        }
        for (int i = j; i < n - 1; i++)
            a[i] = a[i + 1];
        a[n - 1] = min;
    
        int max = a[0];
        j = 0;
        for (int i = 1; i < n; i++)
        {
            if (a[i] > max)
            {
                max = a[i];
                j = i;
            }
        }
        for (int i = j; i > 0; i--)
            a[i] = a[i - 1];
        a[0] = max;
    
        for (int i = 0; i < n; i++)
            printf("%d ", a[i]);
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月31日
  • 已采纳回答 5月23日
  • 创建了问题 2月1日

悬赏问题

  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画