输入10个数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。C语言
时间: 2024-11-25 21:10:55 浏览: 40
在C语言中,你可以通过以下步骤实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结构体存储数值及其索引
typedef struct {
int value;
int index;
} Number;
// 比较两个结构体的大小,用于排序
int compare(const void *a, const void *b) {
Number *num1 = (Number *) a;
Number *num2 = (Number *) b;
return num1->value - num2->value; // 按照绝对值从小到大排序
}
int main() {
int nums[10];
for (int i = 0; i < 10; i++) {
printf("请输入第%d个数:", i+1);
scanf("%d", &nums[i]);
}
// 对数组按照绝对值排序
qsort(nums, 10, sizeof(Number), compare);
// 找到绝对值最小的数(第一个元素)
int min_value = nums[0].value;
int min_index = nums[0].index;
// 找到最后一个数的索引
int last_index = 9;
// 交换这两个数
nums[min_index] = nums[last_index];
nums[last_index] = min_value;
// 输出最后的数组
printf("交换后的数组为:");
for (int i = 0; i < 10; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
阅读全文