问题:编写一个C ++程序以使用函数反转数组
下面提供的代码返回以下错误:
错误:数组下标b [n-i-1] = arr [i];的无效类型'int [int]'
请告知问题的解决方案,即如何消除错误。
#include<iostream>
#include<conio.h>
using namespace std;
int reverse(int arr,int n)
{
int b[100];
for(int i=0;i<n;i++)
{
b[n-i-1]=arr[i];
cout<<b[i]<<"\t";
}
}
int main()
{
system("cls");
int a[100],n;
cout<<"Type the number of elements in an array:\n";
cin>>n;
for(int j=0;j<n;j++)
{
cout<<"Enter number "<<j+1<<endl;
cin>>a[j];
}
reverse(a[100],n);
getch();
}
答案 0 :(得分:0)
将数组作为函数reverse ()
的参数传递时出错。将数组作为参数传递的正确方法是将其作为指向第一个元素的指针传递,这才是真正的:
reverse(a,n);
您还必须更改函数定义:
int reverse(int arr[],int n)
有关更多信息,请参见this教程,但我建议您读一本有关C / C ++编程的好书,例如How to Program in C++ (Deitel, Deitel)
另一种更正:在打印之前,您需要填充所有b
数组。我建议您例如在for
的第一个reverse
之后添加另一个循环,以打印数组的元素。