出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和 a[1] 中的数对调。数据没对调,a[0]变成了0怎么回事,哪里出错了,要怎么改?
你这里根本没有直接对a[0]和a[1]进行操作。肯定与你题目说的结果不一样。
函数修改如下,供参考:
void fun(int* a, int n)
{
int i, m, t, k;
for (i = 0; i < n-1; i++)
{
m = i;
for (k = i + 1; k < n; k++)
{
if (a[k] > a[m])
m = k;
}
if (m != i)
{
t = a[i];
a[i] = a[m];
a[m] = t;
}
}
}
for判断时数组下标越界了