1.题目描述
定义一个长度为n(1 <= n <= 100)的整型数组a,输入n个整数。编写程序,将该数组中所有奇数放在偶数前面
2.设计思路:
输入整型数组a和数组长度n。
定义两个指针i和j,分别指向数组头尾。
当i < j时,向后移动i,直到a[i]为偶数;向前移动j,直到a[j]为奇数;交换a[i]和a[j]的值。
重复执行第3步,直到i >= j。
输出反转后的数组a。
3.程序流程图:
开始
输入数组长度n
输入数组a[n]
定义指针i和j,分别指向数组头尾
当i < j时,向后移动i,直到a[i]为偶数;向前移动j,直到a[j]为奇数;交换a[i]和a[j]的值
重复执行第3步,直到i >= j
输出数组a
结束
4.代码实现:
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入数组长度:" << endl;
cin >> n;
int a[n];
cout << "请输入" << n << "个整数:" << endl;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int i = 0, j = n - 1;
while (i < j) {
while (a[i] % 2 != 0 && i < j) {
i++;
}
while (a[j] % 2 == 0 && i < j) {
j--;
}
if (i < j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
}
cout << "调整后的数组为:" << endl;
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
标签:cout,int,周五,while,直到,数组,打卡,移动
From: https://www.cnblogs.com/zeyangshuaige/p/17339644.html