下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。

16 篇文章 0 订阅

下列给定程序中,函数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<n; i++)

    {

        m=i;

        for(k=i; k<n; k++)

           if(a[k]<a[m])

            k=m;

        t=a[k]

        a[k]=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;

}

答案为

#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)小伙伴记得点赞
 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyycqupt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值