最后不知道哪出错了-_-||

#include "stdio.h"
void input(int a[], int n)
{
int i;
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
}

void chuli(int b[], int n)
{
int i, max, min, t, d, x;
max = min = b[0];
for (i = 1; i < n; i++)
{
if (b[i] > max)
{
max = b[i];
d = i;
}
if (b[i] < min)
{
min = b[i];
x = i;
}
}
t = b[d];
b[d] = b[n - 1];
b[n - 1] = t;
t = b[x];
b[x] = b[0];
b[0] = t;
}

void output(int c[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%5d", c[i]);
}

void main()
{
int score[10];
input(score, 10);
chuli(score, 10);
output(score, 10);
}

如果最后一个元素是最小值的话,你的代码是错误的
t = b[d];
b[d] = b[n - 1];
b[n - 1] = t;
这里把b[n-1]原先的最小值给交换到d下标了
但此时x=n-1,以下代码并没有把最小值交换到b[0]
t = b[x];
b[x] = b[0];
b[0] = t;
另外一个问题时,chuli函数应该将d和x赋予初始值0,否则如果第一个就是最大值或最小值的话,代码是有问题的


max = min = b[0];
加一条初始化语句:
d = x = 0;