⁡86 2021-11-27 22:54 采纳率: 100%
浏览 58
已结题

C语言 数据最小值交换问题

问题是:找出数组中最小的元素,并且与数组中首个元素交换位置,若出现多个最小元素则与第一次出现的最小元素交换。求指教一下下面的代码哪里出错了

#include <stdio.h>
int main ()
{
    int a[101];
    int i,n,x,min=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&a[i-1]);
    }
    for(i=1;i<=n;i++)
    {
        if(a[min]>a[i-1])
        {
            min=i-1;
        }
            x=a[i-1];
            a[i-1]=a[min];
            a[min]=x;
         
    }
    for(i=1;i<=n;i++)
    printf("%d ",a[i-1]);
    return 0;
 } 
  • 写回答

1条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    #include <stdio.h>
    int main ()
    {
        int a[101];
        int i,n,x,min=0;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
            scanf("%d",&a[i-1]);
        }
        for(i=1;i<=n;i++)
        {
            if(a[min]>a[i-1])
            {
                min=i-1;
            }
        }
        x=a[0];
        a[0]=a[min];
        a[min]=x;
        for(i=1;i<=n;i++)
        printf("%d ",a[i-1]);
        return 0;
     }
    

    如有帮助,望采纳!谢谢!

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

报告相同问题?

问题事件

  • 系统已结题 12月5日
  • 已采纳回答 11月27日
  • 创建了问题 11月27日