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

如何实现读取用户输入的int数组并验证其是否为非递减序列

整数序列输入与非递减检查程序实现

嘿,我来帮你搞定这个程序的实现细节和代码示例吧~

功能1:循环接收10个整数存入数组

我们可以用for循环来完成固定次数的输入操作,代码直观又易读。当然用while循环也完全可行,我两种都给你列出来:

用for循环实现输入

#include <stdio.h>

int main() {
    int nums[10]; // 定义存储10个整数的数组

    // 执行10次循环,逐个接收用户输入
    for (int i = 0; i < 10; i++) {
        printf("请输入第%d个整数:", i + 1);
        scanf("%d", &nums[i]);
    }

用while循环实现输入

如果更习惯while的写法,这样写也没问题:

int nums[10];
    int i = 0;
    while (i < 10) {
        printf("请输入第%d个整数:", i + 1);
        scanf("%d", &nums[i]);
        i++;
    }

功能2:检查序列是否为非递减序列

非递减序列的定义是每个元素都大于等于前一个元素,所以我们只需要检查相邻的9对元素就够了——这正好对应9次循环。一旦发现某一对前元素大于后元素,就能直接判定序列不符合要求,提前终止循环节省资源。

// 先假设序列是非递减的
    int isNonDecreasing = 1;

    // 执行9次循环,检查每一对相邻元素
    for (int j = 0; j < 9; j++) {
        if (nums[j] > nums[j + 1]) {
            isNonDecreasing = 0; // 标记为不符合
            break; // 无需继续检查,直接跳出循环
        }
    }

    // 输出最终结果
    if (isNonDecreasing) {
        printf("这个整数序列是非递减序列哦~\n");
    } else {
        printf("这个整数序列不是非递减序列\n");
    }

    return 0;
}

额外说明

  • 不管用for还是while,核心都是控制循环次数刚好符合需求:输入10次,检查9次
  • 提前终止循环的操作很重要,避免做无用功,提升程序效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:52:50