#include
using namespace std;
void inv(int *x, int n)
{ int *p, t, *i, *j, m=(n-1)/2;
i=x; j=x+n-1; p=x+m;
for (; i<=p; i++,j--)
{ t=*i; *i=*j; *j=t;}
}
int main( )
{ int i, n,a[n];
cout<<"输入个数:";
cin>>n;
for(i=0;i cin>>a[i];
inv(a,n);
for (i=0;i<n; i++)
cout<<a[i]<<" ";
return 0;
}
输入数字在五个以下的时候结果没问题,但是大于五个数字的时候结果就是错的,为什么啊?
int i, n,a[n];
不要这么写
因为你不知道n是多少
可以用
int i, n,a[100];
不知道是你沾程序沾错了还是写错了,这个输入函数就有问题,我把改好的贴在下边
#include<iostream>
using namespace std;
void inv(int *x, int n)
{
int *p, t, *i, *j, m = (n - 1) / 2;
i = x; j = x + n - 1; p = x + m;
for (; i <= p; i++, j--)
{
t = *i; *i = *j; *j = t;
}
}
int main()
{
int i, n;
cout << "输入个数:";
cin >> n;
int *a=new int (n);
for (i = 0; i < n; i++)
{
cin >> a[i];
}
inv(a, n);
for (i = 0; i < n; i++)
cout << a[i] << " ";
system("pause");
return 0;
}