下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。
注意:
(1)请将修改正确后的完整源程序拷贝粘贴到答题区内。
(2)对于没有错误的语句,请不要修改,修改原本正确的语句也要扣分。
(3)当且仅当错误全部改正,且程序运行结果调试正确,才给加5分。
题目代码:
|
答案为
#include <stdio.h>
#define N 20
void fun(int* a, int n)
{
int i, m, t, k;
for (i = 0; i < 2; i++)//要求最小数分别与a[0],a[1]对调
{
m = i;
for (k = i; k < n; k++)//当i=0时,遍历数组 求出最小数与a[i]即a[0]对调
if (a[k] < a[m])//当i=1时,遍历a[1]后的数组 求出最小数,因为i=0时,最小数已经存储在a[0]
m=k;//所以i=1求出的最小数为次最小数,与a[1]对调 编写不易cqupt小伙伴点个赞
t = a[m];//对调
a[m] = a[i];
a[i] = t;
}
}
int main()
{
int b[N] = { 11,5,12,0,3,6,9,7,10,8 }, n = 10, i;
for (i = 0; i < n; i++)
printf("%d ", b[i]);
printf("\n");
fun(b, n);
for (i = 0; i < n; i++)
printf("%d ", b[i]);
printf("\n");
return 0;
}
//(cqupt)小伙伴记得点赞