是一题对数组进行倒序排序的题目
#include
int main()
{
void inv(int arr[],int n);
int i = 0; //cricle vary
int arr[] = {3,7,9,11,0,6,7,5,4,2};
int num = 10; //elements Numbers;
printf("The Original Numbers:\n");
for(i = 0;i < num;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
inv(arr,num);
printf("The arry has been inverted:\n");
for(i = 0;i < num;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
void inv(int * arr,int n)
{
int * i = arr;
int * j = arr+n-1;
for(;i <= arr+(n-1)/2;i++,j--)
{
int temp = * i;
* i = * j;
* j = temp;
}
return;
}
希望能帮忙分析下
void inv(int arr[],int n);
这里申明的是arr[]
下面定义是 *arr
两者改其中之一,统一一下。
问题的原因很可能是在代码中调用了一个名为"inv"的函数,但是没有在代码中定义该函数。这可能是因为函数的定义被省略了,或者是因为函数的定义被放错了地方。请检查代码中是否有一个名为"inv"的函数,并确保该函数已被正确定义和调用。以下是一个简单的示例代码,用于对数组进行倒序排序:
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[] = {3, 5, 1, 4, 2};
int n = sizeof(arr) / sizeof(arr[0]);
// 使用标准库中的sort函数对数组进行排序
sort(arr, arr + n, greater<int>());
// 输出排序后的数组
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}