首页 > 其他分享 >提取并排序数组中的偶数

提取并排序数组中的偶数

时间:2024-10-20 11:17:22浏览次数:3  
标签:cnt 奇数 int 整数 偶数 数组 排序

题目:提取并排序数组中的偶数

题目描述:

给定一个整数 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. 从输入中读取一系列整数。
  2. 提取出其中的偶数,并将它们存入数组。
  3. 对奇数进行排序。
  4. 输出排序后的奇数,格式为用逗号分隔的字符串。

注意:

  • 输入的整数个数从 1 开始,而数组索引从 0 开始,因此在读取和处理时要特别注意。

 

标签:cnt,奇数,int,整数,偶数,数组,排序
From: https://blog.csdn.net/ljb_java888/article/details/143090142

相关文章

  • 奇数偶数分开并排序(冒泡函数)
    voidbubbleSort(intarr[],intn){inti,j;for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if(arr[j]>arr[j+1]){//交换arr[j]和arr[j+1]inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}intmain(){int......
  • 第7讲:数组
    文章目录1.数组的概念2.⼀维数组的创建和初始化3.一维数组的使用4.一维数组在内存中的存储6.⼆维数组的创建7.二维数组的初始化8.二维数组的使用9.二维数组在内存中的存储10.C99中的变长数组11.数组练习1.数组的概念2.⼀维数组的创建和初始化3.⼀维数......
  • 树状数组——原理详解
    前言这两天在网上学树状数组,但是发现网上关于树状数组的解释大都对初学者不太友善,原理讲解部分并不是很容易理解,所以写了一篇树状数组,顺便帮自己巩固一下。一、什么是树状数组1.概念:简单来说,这是一种数据结构。顾名思义,它通过树的结构来对数组进行高效操作,一般用于求数组前缀......
  • 二维数组1019
    publicclassPlaceDemo{publicstaticvoidmain(String[]args){//班级学生座位(二维数组)place();pace();}publicstaticvoidplace(){//静态初始化数组-----数据类型[][]数组名=new数据类型[]{元素1,元素2,元素3,··......
  • 数组练习1018
    假设班级有8名学生,录入8名学生的java成绩,成绩类型是小数,并输出平均分,最高分,最低分publicclassClassDemo2{publicstaticvoidmain(String[]args){//假设班级有8名学生,录入8名学生的java成绩,成绩类型是小数,并输出平均分,最高分,最低分studentSc......
  • 数组与字符串
    数组一维数组构造的数据类型之一,由若干数据类型相同的元素组成。其中数组名是地址常量不可修改,所以不能赋值操作,sizeof(数组名)求总内存空间。特点:数组不赋初始值,随机生成static修饰,默认位0部分赋值,其余默认为0//验证以上#include<iostream>usingnamespacestd;i......
  • 代码随想录算法训练营day20| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树
    学习资料:https://programmercarl.com/0669.修剪二叉搜索树.html#算法公开课学习记录:669.修剪二叉搜索树(直接在原函数上操作,要根据情况用root的左右子树递归,因为子树中有满足条件的;前序:根左右)点击查看代码#Definitionforabinarytreenode.#classTreeNode:#def_......
  • 冒泡排序(Bubble Sort)
    新人博主,创作不易,希望得到各位看官的三连支持!!!1、原理        冒泡排序是一种简单的排序算法,属于交换排序的一种。它通过重复地遍历待排序的数列,比较相邻的元素,如果它们的顺序错误就将它们交换过来。这个过程会重复进行,直到没有需要交换的元素位置,即数列已经排序完......
  • 堆结构和堆排序
     小伙伴们大家晚上好,今天又是双更的一天。现在为大家带来堆的讲解。1.完全二叉树以及堆的含义 首先大家应该明白什么是堆:堆是一种特殊的完全二叉树,又可以分为最大堆和最小堆。我首先展示什么是完全二叉树(以两张图作为例子):   这张图片就展示了完全二叉树。  这......
  • java堆排序的示例代码
    publicclassHeapSort{publicstaticvoidmain(String[]args){int[]arr={12,11,13,5,6,7};System.out.println("Originalarray:");for(intvalue:arr){System.out.print(value+"");......