从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置

2024-12-01 15:28:19
推荐回答(2个)
回答1:

1.找出数组中的最大值和最小值索引位置,然后将其交换即可
#include

// 交换最大、最小值位置
void SwapLimVal(int *src, int len)
{
int max , min, maxlen = 0, minlen = 0;
max = min = src[0]; // 初始化最大、最小值暂时为第一个
for (int i = 1; i < len; i++)
{
if (max < src[i]) // 元素如果比最大数的,则重置最大值,及其索引
{
max = src[i];
maxlen = i;
}
else if (min > src[i])// 元素如果比最小数的,则重置最小值,及其索引
{
min = src[i];
minlen = i;
}
}
if (maxlen == minlen) // 如果所有值一样,不用交换
return;
int tem = src[maxlen]; // 交换最大、最小值
src[maxlen] = src[minlen];
src[minlen] = tem;
}

int main()
{
int a[10];
printf("intput 10 number : "); // 输入10个整数
for (int i = 0; i < 10; i++)
scanf("%d", &a[i]);
SwapLimVal(a, 10);
for (int i = 0; i < 10; i++) // 输出交换结果
printf("%d ", a[i]);
return 0;
}

回答2:

void swap(int &a, int &b)  
{    
    int tmp = 0;  
    tmp = b;  
    b = a;  
    a = tmp;  
 }

swap这么写