You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修正代码,使if循环正确输出数组奇数位置的元素?

问题分析与解决

核心问题是你混淆了编程数组索引(从0开始)和日常说的位置(从1开始):你要输出的是奇数位置(第1、3、5...位)的元素,但当前代码里的i%2 != 0,筛选的是索引为奇数的元素(对应第2、4、6...位),这才是“位置1没输出”的原因,和取模向下取整完全无关。

修正代码

只需要把判断条件改成i%2 == 0——因为奇数位置对应的数组索引都是偶数(第1位对应索引0,第3位对应索引2,以此类推):

int[] num = new int[10];
Random rand = new Random();
for (int i = 0; i < num.Length; i++)
{
    num[i] = rand.Next(1, 50);
}
// 打印原数组
for (int i=0; i < num.Length;i++)
{
    Console.Write(" " + num[i] + " ");
}
Console.WriteLine(); // 换行区分原数组和结果
// 输出奇数位置(第1、3、5...位)的元素
for (int i = 0; i < num.Length; ++i)
{
    if (i%2 == 0) // 修改判断条件
    {
        Console.WriteLine(" " + num[i]);
    }
}

更高效的写法

没必要通过条件判断筛选,直接从索引0开始,每次步长设为2,就能直接遍历所有奇数位置的元素:

for (int i = 0; i < num.Length; i += 2)
{
    Console.WriteLine(" " + num[i]);
}

你之前尝试的转double类型、添加i=1的或条件都是多余操作,问题根源就是索引和日常位置的对应关系搞反了。

内容的提问来源于stack exchange,提问作者Bellet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 06:13:40