在主函数中输入10个未排序的整数存入数组,通过指针法设计函数hanshu(int*p,int n),先用选择法
时间: 2024-03-17 10:47:24 浏览: 55
你可以使用以下代码来实现:
```
#include <stdio.h>
#define SIZE 10
void hanshu(int *p, int n) {
int temp, min_index;
// 选择排序
for (int i = 0; i < n - 1; i++) {
min_index = i;
for (int j = i + 1; j < n; j++) {
if (*(p + j) < *(p + min_index)) {
min_index = j;
}
}
temp = *(p + i);
*(p + i) = *(p + min_index);
*(p + min_index) = temp;
}
}
int main() {
int arr[SIZE];
int *p = arr; // 定义指向数组的指针
printf("请输入%d个整数:\n", SIZE);
// 通过指针访问数组元素,存储用户输入的整数
for (int i = 0; i < SIZE; i++) {
scanf("%d", p + i);
}
// 调用函数进行排序
hanshu(p, SIZE);
// 输出排序后的数组中的元素
printf("排序后的数组中的元素为:\n");
for (int i = 0; i < SIZE; i++) {
printf("%d ", *(p + i));
}
printf("\n");
return 0;
}
```
这段代码中,定义了一个大小为10的整型数组`arr`和一个指向数组的指针`p`。在主函数中,通过`scanf`函数将用户输入的整数存储在数组中,通过指针访问数组元素实现。然后,调用函数`hanshu`对数组进行排序,排序算法使用的是选择排序。最后,使用指针访问数组元素并输出排序后的数组中的元素。函数`hanshu`的函数头为`void hanshu(int *p, int n)`,其中`int *p`表示指向数组的指针,`int n`表示数组的大小。
阅读全文