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

C语言如何读取单行输入的整数并存入整型数组

C语言读取单行输入整数存入整型数组的实现

你给出的参考代码存在逻辑缺陷:仅读取了数组下标为0的第一个元素,剩余数组元素未被赋值,直接访问会读到栈空间的随机垃圾值,无法实现整行输入整数的存储需求。

核心实现逻辑

  • C语言中scanf("%d")读取整数时,会自动跳过空格、制表符、换行等空白分隔符,因此单行内用空格分隔的整数序列,可以直接通过循环依次读取,不需要额外做单行特殊识别。
  • 循环遍历数组所有有效下标,将对应元素的地址传入scanf完成赋值,避免未初始化内存访问问题。
  • 遍历数组做读写操作时,严格控制下标范围在0到数组长度-1之间,防止数组越界。

修正后可直接运行的代码

#include <stdio.h>

int main()
{
    int arr[5];
    // 循环读取5个整数,依次存入数组对应位置
    for (int i = 0; i < 5; i++) {
        scanf("%d", &arr[i]);
    }

    // 遍历打印数组内容,验证存储结果
    for (int i = 0; i < 5; i++) {
        printf("%d\n", arr[i]);
    }

    return 0;
}

扩展说明

  • 如果无法提前确定单行输入的整数个数,不要用固定长度数组:可以先用fgets读取整行内容到字符缓冲区,再遍历缓冲区逐个解析整数,配合动态内存分配按需扩容数组存储即可。
  • 上述固定长度的写法对输入换行不敏感,即使用户输入过程中敲了换行,只要输入的整数总数量和数组长度匹配,就能正确完成存储。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:36:25