周五打卡

发布时间 2023-04-21 11:06:34作者: 菜鸟de博客

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;
}