复制
收藏
提问
简洁
输入10个整数,将其中最小的数与第一个数交换,把其中最大的数与最后一个数交换。 把交换后的数分行输出,每个数占一行。 用函数和指针实现。 输入 以空格分隔的10个整数。 输出 分行输出10个整数,每个数占一行。c语言
3月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
要实现输入10个整数,并将其中最小的数与第一个数交换,最大的数与最后一个数交换的功能,我们可以使用C语言中的函数和指针。以下是实现这一功能的步骤和代码示例:
-
定义函数:首先,我们需要定义一个交换函数
swap
,用于交换两个整数的值。接着,定义一个swapMinMax
函数,用于找到数组中的最大值和最小值的索引,并使用交换函数来交换它们的位置。 -
读取输入:使用
scanf
函数读取用户输入的10个整数,并将它们存储在一个数组中。 -
交换操作:调用
swapMinMax
函数来执行交换操作。 -
输出结果:遍历数组,使用
printf
函数分行输出每个整数。
以下是具体的C语言代码实现:
#include <stdio.h>
// 交换两个整数的函数
void swap(int *xp, int *yp) {
int temp = *xp;
*xp = *yp;
*yp = temp;
}
// 交换数组中最大值和最小值的函数
void swapMinMax(int arr[], int size) {
int i, maxIndex, minIndex;
maxIndex = minIndex = 0;
// 找到最大值和最小值的索引
for (i = 1; i < size; i++) {
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
}
// 交换最大值和最小值
swap(&arr[minIndex], &arr[0]);
swap(&arr[maxIndex], &arr[size - 1]);
}
int main() {
int arr[10];
int i;
// 读取输入
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 执行交换操作
swapMinMax(arr, 10);
// 输出结果
for (i = 0; i < 10; i++) {
printf("%d\n", arr[i]);
}
return 0;
}
这段代码首先定义了swap
和swapMinMax
函数,然后在main
函数中读取用户输入的10个整数,调用swapMinMax
函数进行交换操作,最后输出交换后的数组。789
你觉得结果怎么样?