题目:提取并排序数组中的偶数
题目描述:
给定一个整数 n 和一个包含 n 个整数的数组,编写一个程序提取数组中的所有偶数,并按升序排序后输出。
输入格式:
- 第一行包含一个整数 n (1 ≤ n ≤ 100,000),表示数组的元素个数。
- 第二行包含 n 个整数,表示数组中的元素。每个整数的绝对值不超过 109109。
输出格式:
- 输出所有偶数的升序排列,偶数之间用逗号分隔。如果数组中没有奇数,则不输出任何内容。
示例:
输入
6 3 1 4 2 4
输出
2,4,6
说明:
在上述示例中,数组中的偶数为 [6, 2, 4],经过排序后输出为 2, 4, 6。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[100000],n,cnt,x;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
if(x%2==0) a[cnt++]=x;
}
sort(a,a+cnt);
cout<<a[0];
for(int i=1;i<cnt;i++){
cout<<','<<a[i];
}
return 0;
}
这段代码的主要功能是从输入的整数中提取出所有的奇数,进行排序,并以逗号分隔的形式输出。以下是代码的逐行解读:
#include<bits/stdc++.h> using namespace std;
- 引入了 C++ 标准库的头文件
bits/stdc++.h
,它包含了大多数常用的 C++ 库。
int a[100000], n, cnt, x;
- 定义了一个数组
a
,大小为 100,000,用于存储奇数。 n
表示输入的整数个数。cnt
用于记录奇数的数量。x
用于存储当前输入的整数。
int main() { cin >> n;
main
函数的开始,读取用户输入的整数个数n
。
for (int i = 1; i <= n; i++) { cin >> x;
- 循环从 1 到
n
,逐个读取整数x
。
if (x % 2 == 0) a[cnt++] = x;
- 判断
x
是否为偶数(即x % 2 == 0
),如果是,则将其存入数组a
中,并将cnt
递增。
sort(a, a + cnt);
- 对存储的奇数进行升序排序。
cout << a[0];
- 输出数组中第一个奇数(最小的奇数)。
for (int i = 1; i < cnt; i++) { cout << ',' << a[i]; }
- 循环输出剩下的奇数,每个奇数前面加一个逗号,形成逗号分隔的格式。
return 0;
- 返回 0,表示程序正常结束。
总结
这段代码的主要功能是:
- 从输入中读取一系列整数。
- 提取出其中的偶数,并将它们存入数组。
- 对奇数进行排序。
- 输出排序后的奇数,格式为用逗号分隔的字符串。
注意:
- 输入的整数个数从 1 开始,而数组索引从 0 开始,因此在读取和处理时要特别注意。
标签:cnt,奇数,int,整数,偶数,数组,排序 From: https://blog.csdn.net/ljb_java888/article/details/143090142