用指针、函数的方法,对10位同学的C语言成绩按由到小顺序排序。(选择排序法) 思路: (1)指针变量p指向数组a。 (2)键盘输入10个整数。 (3)调用sort函数。
时间: 2024-03-11 07:51:05 浏览: 55
好的,下面是代码实现:
```c
#include <stdio.h>
void sort(int *a, int n) {
int i, j, temp, *pmin;
for (i = 0; i < n - 1; i++) {
pmin = a + i;
for (j = i + 1; j < n; j++) {
if (*(a + j) < *pmin) {
pmin = a + j;
}
}
if (pmin != a + i) {
temp = *(a + i);
*(a + i) = *pmin;
*pmin = temp;
}
}
}
int main() {
int a[10];
int i;
int *p = a;
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", p + i);
}
sort(p, 10);
printf("排序后的结果为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", *(p + i));
}
printf("\n");
return 0;
}
```
解释一下代码的实现过程:
1. 定义了一个名为sort的函数,用来对传入的数组按由到小进行排序;
2. sort函数内部使用了选择排序的算法,通过两重循环找到当前未排序部分中最小的元素,并将其与排序部分的最后一个元素交换位置;
3. 在主函数中,定义了一个长度为10的整型数组a,并定义了一个指向a[0]的指针p;
4. 通过键盘输入向数组a中赋值;
5. 调用sort函数对数组a进行排序;
6. 输出排序后的结果。
希望这个代码能够对你有所帮助!
阅读全文