用指针、函数的方法,对10位同学的C语言成绩按由到小顺序排序。(选择排序法) 思路: (1)指针变量p指向数组a。 (2)键盘输入10个整数。 (3)调用sort函数
时间: 2024-01-17 11:03:34 浏览: 61
来对数组a进行排序。sort函数使用选择排序法实现。 (4)输出排序后的数组a。
代码如下:
```c
#include <stdio.h>
void sort(int *p, int n); // 声明函数sort
int main()
{
int a[10], i;
int *p = a; // 指针变量p指向数组a
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]); // 键盘输入10个整数
}
sort(p, 10); // 调用sort函数进行排序
printf("排序后的数组为:\n");
for (i = 0; i < 10; i++)
{
printf("%d ", a[i]); // 输出排序后的数组
}
printf("\n");
return 0;
}
void sort(int *p, int n) // 定义函数sort
{
int i, j, min, temp;
for (i = 0; i < n - 1; i++)
{
min = i; // 记录最小值的下标
for (j = i + 1; j < n; j++)
{
if (*(p + j) < *(p + min)) // 找出最小值
{
min = j;
}
}
if (min != i) // 如果最小值不是当前位置的数,交换两个数
{
temp = *(p + i);
*(p + i) = *(p + min);
*(p + min) = temp;
}
}
}
```
这段代码中,sort函数使用了指针变量p来访问数组a的元素。在函数调用时,将数组首地址传递给指针p,就可以通过指针p来访问数组a的元素。选择排序法的核心思想是,在未排序的数组中找到最小值,与当前位置的数交换位置,依此类推,直到整个数组有序为止。
阅读全文