用c语言编写一个程序,有n个整数,n由键盘输入,将这n个数逆序排序,用带指针的函数实现
时间: 2024-05-01 12:23:29 浏览: 26
以下是用C语言编写一个带指针的函数,实现n个整数逆序排序的程序:
```c
#include <stdio.h>
#include <stdlib.h>
void reverse(int *arr, int n);
int main()
{
int n, i;
int *arr;
printf("请输入整数个数:");
scanf("%d", &n);
arr = (int*)malloc(sizeof(int) * n);
if (arr == NULL)
{
printf("内存分配失败!");
exit(1);
}
printf("请输入%d个整数:", n);
for (i = 0; i < n; i++)
{
scanf("%d", arr + i);
}
reverse(arr, n);
printf("逆序排序后的数组:");
for (i = 0; i < n; i++)
{
printf("%d ", *(arr + i));
}
free(arr);
return 0;
}
void reverse(int *arr, int n)
{
int i, j, temp;
for (i = 0, j = n - 1; i < j; i++, j--)
{
temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
```
首先,我们通过`scanf`函数从键盘输入整数个数n,然后动态分配n个整数的空间,存储在指针arr中。如果内存分配失败,程序将退出。
接下来,我们通过循环及`scanf`函数从键盘输入n个整数,存储在指针arr所指向的内存中。
然后,我们调用`reverse`函数,将指针arr及整数个数n作为参数传递给函数。在`reverse`函数中,我们通过循环及指针的方式将数组逆序排序。
最后,我们通过循环及`printf`函数输出逆序排序后的数组,然后释放动态分配的内存空间,程序结束。
需要注意的是,本程序中的函数调用方式使用了指针,因此在函数定义及调用时需要注意指针的类型及使用方式。