#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 回答
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 关注
- 1432 浏览
添加回答
举报
0/150
提交
取消
