#include <iostream>
using namespace std;
int adjust(int a[],int n);
int main()
{
int n;
int a[n];
int b[n];
cout<<"请输入数组长度:"<<endl;
cin>>n;
cout<<"请输入各个元素:"<<endl;
for(int i=0;i<n;i++)
cin>>a[i];
adjust;
cout<<"调整后为:"<<endl;
for(int i=0;i<n;i++)
cout<<b[i]<<" ";
return 0;
}
int adjust(int a[],int n)
{
int i=0;
int b[n];
for(i=0;i<n;i++)
{
if(a[i]%2!=0)
b[i]=a[i];
else
b[n-1-i]=a[i];
}
return 0;
}但是运行之后,数据都变了。十分感谢。
2 回答
![?](http://img1.sycdn.imooc.com/55b3237400010d8e01800180-100-100.jpg)
AAnonymous
TA贡献62条经验 获得超31个赞
#include <iostream> using namespace std; int adjust(int *a, int *b, int n); int main() { int n; int *a = nullptr; int *b = nullptr; cout << "请输入数组长度:" << endl; cin >> n; a = new int[n]; b = new int[n]; cout << "请输入各个元素:" << endl; for (int i = 0; i < n; i++) cin >> a[i]; adjust(a, b, n); cout << "调整后为:" << endl; for (int i = 0; i < n; i++) cout << b[i] << " "; delete[] a; delete[] b; return 0; } int adjust(int *a, int *b, int n) { int left = 0, right = n - 1; for (int i = 0; i < n; i++) { if (a[i] % 2 != 0) { b[left] = a[i]; ++left; } else { b[right] = a[i]; --right; } } return 0; }
- 2 回答
- 0 关注
- 1312 浏览
添加回答
举报
0/150
提交
取消