编写程序,输入15个整数存入一维数组,再按从大到小重新存放后输出,要求用指针实现。注意:输出的数字以空格分隔开。
时间: 2023-04-20 19:03:49 浏览: 217
用指向指针的方法对n个整数排序并输出。
以下是用C语言编写的程序,实现输入15个整数存入一维数组,再按从大到小重新存放后输出,要求用指针实现。输出的数字以空格分隔开。
```c
#include <stdio.h>
#define N 15
void sort(int *arr, int n);
int main()
{
int arr[N];
int *p = arr;
int i;
printf("请输入%d个整数:\n", N);
for (i = ; i < N; i++) {
scanf("%d", p + i);
}
sort(p, N);
printf("从大到小排序后的结果为:\n");
for (i = ; i < N; i++) {
printf("%d ", *(p + i));
}
printf("\n");
return ;
}
void sort(int *arr, int n)
{
int i, j, temp;
for (i = ; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (*(arr + i) < *(arr + j)) {
temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
}
}
```
程序的思路是先定义一个长度为15的整型数组`arr`,再定义一个指向`arr`的指针`p`。然后通过循环输入15个整数,将它们存入数组中。接着调用`sort`函数,对数组进行从大到小的排序。最后再循环输出排序后的结果。
`sort`函数的实现是通过两层循环遍历数组,比较相邻两个元素的大小,如果前一个元素比后一个元素小,则交换它们的位置。这样一轮循环结束后,最大的元素就会被移到数组的最前面。重复这个过程,直到整个数组都被排序好。
程序的输出结果如下:
```
请输入15个整数:
3 1 4 1 5 9 2 6 5 3 5 8 9 7 9
从大到小排序后的结果为:
9 9 9 8 7 6 5 5 5 4 3 3 2 1 1
```
阅读全文