2 条题解

  • 0
    @ 2026-3-31 12:54:09

    #include<bits/stdc++.h> using namespace std; long long n,a,js[105],o[105],cnt,sum; int main(){ cin>>n; for(int i=1;i<=n;i++) { cin>>a; if(a%2==0)o[++cnt]=a; else js[++sum]=a; } for(int i=1;i<=sum;i++) { cout<<js[i]<<" "; } cout<<endl; for(int i=1;i<=cnt;i++) { cout<<o[i]<<" "; } return 0; }

    • -1
      @ 2026-3-24 17:42:02

      **五年级的小蒟蒻发个题解~~~~

      首先这道题很明显是一位数组应用题

      1. 输入处理

      第一步:读取第一个整数 n(范围 1 < n < 30),这个数代表后续要输入的整数个数。 第二步:读取第二行的 n 个整数,需要把这些数暂时存储起来(比如用数组),方便后续筛选。

      2. 奇偶筛选

      遍历存储的 n 个整数,对每个数做判断: 奇数判断:用该数对 2 取余(数 % 2),若结果不等于 0,则这个数是奇数,将其归类到 “奇数集合” 中。 偶数判断:若该数对 2 取余结果等于 0,则这个数是偶数,将其归类到 “偶数集合” 中。 (注:C++98 中取余运算对负数同样适用,比如 -3 % 2 = -1,仍会被判定为奇数,符合常规奇偶定义)

      3. 结果输出

      第一步:输出 “奇数集合” 中的所有数,数与数之间用空格隔开,输出完成后换行。 第二步:输出 “偶数集合” 中的所有数,数与数之间用空格隔开,输出完成后换行。 (注:若某一类数为空,对应行仅输出换行即可;输出顺序需和输入时的顺序一致)

      4. 边界与细节

      确保输入的 n 符合 1 < n < 30 的范围(可做简单校验,避免非法输入)。 存储整数的容器选择:C++98 中常用数组(如 int arr[30]),因为 n 最大不超过 29,数组大小足够。 O2 优化是编译层面的优化(如编译器优化循环、内存访问等),逻辑层面无需额外处理,只需保证代码符合 C++98 语法即可。 总结

      核心逻辑:先读取输入的个数和具体数值,再通过 “对 2 取余” 区分奇偶,最后分别输出两类数。

      AC代码他来了

      #include<bits/stdc++.h> using namespace std; long long n,a,js[105],o[105],cnt,sum; int main(){ cin>>n; for(int i=1;i<=n;i++) { cin>>a; if(a%2==0)o[++cnt]=a; else js[++sum]=a; } for(int i=1;i<=sum;i++) { cout<<js[i]<<" "; } cout<<endl; for(int i=1;i<=cnt;i++) { cout<<o[i]<<" "; } return 0; }

      • 1

      信息

      ID
      1601
      时间
      1000ms
      内存
      64MiB
      难度
      3
      标签
      递交数
      26
      已通过
      17
      上传者