为什么我写的这串代码没起到作用

img

img

img

第二个for里面判断你写的是小于0,所以循环都没进,要改成10,看样子应该是你写漏了,加油

要求你写三个函数,参考如下:

#include <stdio.h>
void input(int a[])
{
    int i;
    for (i=0;i<10;i++)
    {
        scanf_s("%d",&a[i]);
    }
}
void deal(int a[])
{
    int i,max,min,maxindex,minindex,tmp;
    max = min = a[0];
    maxindex = minindex = 0;
    for (i=1;i<10;i++)
    {
        if(min > a[i]) {min = a[i];minindex = i;}
        if(max < a[i]) {max = a[i];maxindex = i;}
    }

    //最小的数与第一个数兑换
    tmp = a[minindex];
    a[minindex] = a[0];
    a[0] = tmp;
    //最大的数与最后一个数兑换
    tmp = a[maxindex];
    a[maxindex] = a[9];
    a[9] = tmp;
    //其实这里会有个问题,可以想一下当最小的数在a[9]、最大的数在a[0]时会出现什么情况
    //这里就不再做处理了,完全按照题目要求来写
}

void display(int a[])
{
    int i;
    for (i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");
}
int main()
{
    int a[10];
    input(a);
    deal(a);
    display(a);
    return 0;
}