C++信息学奥赛1177:奇数单增序列

C++信息学奥赛1177:奇数单增序列_第1张图片

#include
using namespace std;
int main(){
    int n;
    cin>>n; // 输入整数 n,表示数组的大小

    int arr[n]; // 创建大小为 n 的整型数组
    for(int i=0;i<n;i++) 
        cin>>arr[i]; // 输入数组元素

    for(int i=0;i<n;i++){ // 对数组进行冒泡排序
        for(int j=0;j<n;j++){
            if(arr[i]<arr[j]){
                swap(arr[i],arr[j]); // 如果当前元素比后面的元素大,则交换位置
            }
        }
    }

    int a=0; // 计数器,统计奇数个数
    for(int i=0;i<n;i++){
        if(arr[i]%2!=0){ // 判断当前元素是否为奇数
            a++; // 是奇数则计数器加1
            if(a==2){ // 如果是第二个奇数,需要输出逗号分隔符
                a=1; // 计数器重置为 1
                cout<<","; // 输出逗号分隔符
            }
            cout<<arr[i]; // 输出奇数
        }
    }
}

返回代码逻辑:

  1. 首先,从标准输入中读取一个整数 n,表示数组的大小。
  2. 创建一个大小为 n 的整型数组 arr。
  3. 使用 for 循环,从标准输入中依次读取 n 个元素并存入数组 arr 中。
  4. 使用嵌套的两个 for 循环,实现冒泡排序算法对数组 arr 进行升序排序。
  5. 初始化计数器 a 为 0,用于统计奇数的个数。
  6. 使用 for 循环遍历数组 arr 中的元素:
    • 如果当前元素为奇数,则将计数器 a 加1。
    • 如果计数器 a 的值为2,表示已经找到了第二个奇数,输出逗号分隔符。
    • 将计数器 a 重置为 1。
    • 输出当前奇数。
  7. 程序结束。

你可能感兴趣的:(青少年编程,算法,c++)