编写C语言程序,编写一个函数sort,使用指针的方法对一个数组a[10],实现从大到小的排序。
时间: 2024-02-15 18:02:17 浏览: 73
好的,以下是符合您要求的C语言程序:
```c
#include <stdio.h>
void sort(int* a, int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (*(a + i) < *(a + j)) {
temp = *(a + i);
*(a + i) = *(a + j);
*(a + j) = temp;
}
}
}
}
int main() {
int i, a[10] = {5, 9, 2, 7, 3, 6, 8, 1, 4, 0};
sort(a, 10);
for (i = 0; i < 10; i++) {
printf("%d ", *(a + i));
}
return 0;
}
```
这个程序定义了一个名为`sort`的函数,该函数使用指针的方法对一个整型数组进行从大到小的排序。在`main`函数中,我们定义了一个包含10个元素的整型数组,并将其传递给`sort`函数进行排序。最后,我们使用循环输出排序后的数组元素。
相关问题
用C语言编写程序:编写一个函数sort,使用指针的方法对一个数组a[10],实现从大到小的排序。
好的,下面是代码实现:
```c
#include <stdio.h>
void sort(int *a, int n) {
int i, j, tmp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (*(a + i) < *(a + j)) { // 如果前面的元素小于后面的元素
tmp = *(a + i); // 交换两个元素的值
*(a + i) = *(a + j);
*(a + j) = tmp;
}
}
}
}
int main() {
int arr[10] = {3, 5, 2, 1, 4, 6, 8, 9, 7, 10};
int *p = arr; // 定义指针指向数组的首地址
sort(p, 10); // 调用排序函数
for (int i = 0; i < 10; i++) {
printf("%d ", *(p + i)); // 打印排序后的数组元素
}
return 0;
}
```
运行结果为:
```
10 9 8 7 6 5 4 3 2 1
```
其中,`*(a + i)` 表示指针指向的数组元素的值,`a` 是数组的首地址,`i` 是数组下标。排序函数中使用了选择排序算法,将数组元素从大到小排序。
用C语言编写:编写一个函数sort,使用指针的方法对一个数组a[10],实现从大到小的排序。
好的,以下是代码实现:
```c
void sort(int *a, int n) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
for (j = i+1; j < n; j++) {
if (*(a + i) < *(a + j)) {
temp = *(a + i);
*(a + i) = *(a + j);
*(a + j) = temp;
}
}
}
}
```
其中,`a` 是一个指向数组首元素的指针,`n` 表示数组的元素个数。函数中使用双重循环遍历数组元素,如果前一个元素的值小于后一个元素的值,则交换它们的位置。这样,最终就能得到一个从大到小排序的数组。
阅读全文