从键盘输入从键盘输入 n 个数存放在数组中, 将最小值与第一个数交换, 输出交换后的 n 个数用c语言 n 个数存放在数组中, 将最小值与第一个数交换, 输出交换后的 n 个数用c语言并解释
时间: 2024-10-14 22:05:32 浏览: 21
java 输入一个数字组成的数组(输出该数组的最大值和最小值)
在C语言中,你可以通过以下步骤实现这个功能:
1. 首先,创建一个动态数组(如果n是未知的),或者预定义大小的数组,用于存储用户输入的n个整数。
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i;
printf("请输入数组的元素个数:");
scanf("%d", &n);
// 创建动态数组,大小等于n
int* arr = (int*)malloc(n * sizeof(int));
if (arr == NULL) {
printf("内存分配失败!\n");
return 1;
}
printf("请输入%d个数字:\n", n);
for (i = 0; i < n; ++i) {
scanf("%d", &arr[i]);
}
// 寻找最小值及其索引
int min_index = 0, temp;
for (i = 1; i < n; ++i) {
if (arr[min_index] > arr[i]) {
min_index = i;
}
}
// 交换最小值与第一个元素
temp = arr[0];
arr[0] = arr[min_index];
arr[min_index] = temp;
// 输出交换后的数组
printf("交换后数组:\n");
for (i = 0; i < n; ++i) {
printf("%d ", arr[i]);
}
// 释放内存
free(arr);
return 0;
}
```
这段代码首先读取用户输入的n和n个整数,然后找到数组中的最小值及其位置。接着将第一个元素(假设是最小的)与找到的最小值交换,最后打印出修改后的数组。注意,在程序结束时,需要使用`free`函数释放动态分配的内存,防止内存泄漏。
阅读全文