从键盘输入 10 个数,将10 个数的最小值换到最前面的位置。 (使用指针)
时间: 2024-12-23 09:14:21 浏览: 0
c#输出10个数的最大值、最小值、平均值和总和。.rar
在C语言中,你可以使用指针来实现这个功能。下面是一个简单的示例程序,它提示用户输入10个整数,然后通过两个指针交换它们之间的最小值:
```c
#include <stdio.h>
// 定义函数获取数组中的最小值,并返回其索引
int find_min(int *arr, int size) {
int min_index = 0;
for (int i = 1; i < size; i++) {
if (arr[i] < arr[min_index]) {
min_index = i;
}
}
return min_index;
}
void swap_min_to_front(int *arr, int size) {
// 创建指向数组开头和结尾的指针
int *start = arr;
int *end = arr + size - 1;
// 找到第一个元素的下一个位置的最小值
int min_index = find_min(arr + 1, size - 1);
// 交换开始位置和找到的最小值
while (min_index > 0) {
int temp = *start;
*start = arr[min_index];
arr[min_index] = temp;
start++;
min_index--;
}
}
int main() {
int nums[10]; // 假设我们有一个大小为10的数组
printf("请输入10个数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &nums[i]);
}
printf("原始数组:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", nums[i]);
}
swap_min_to_front(nums, 10);
printf("\n调整后数组(最小值已移到最前面):\n");
for (int i = 0; i < 10; i++) {
printf("%d ", nums[i]);
}
return 0;
}
阅读全文