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

C语言如何为已设置下标0值的指定大小数组填充其余递增元素

现有代码核心问题

  • scanf的格式字符串中多余的\n会导致输入匹配异常:%d本身会自动跳过前置空白(空格、换行、制表符等),额外加\n会要求多输入一个非空白字符才能结束匹配
  • 仅给数组下标0的元素完成了赋值,下标1到size-1的元素未做初始化,打印时会输出随机的内存垃圾值

修正后完整代码

#include <stdio.h>

int main() {
    int size;
    int startValue;
    // 修正scanf格式,去掉多余换行符
    scanf("%d %d", &size, &startValue);

    int array[size];
    // 遍历完成所有元素赋值
    for(int i = 0; i < size; i++) {
        array[i] = startValue + i;
    }

    // 按示例要求用顿号分隔打印元素
    for(int i = 0; i < size; i++) {
        if(i != 0) {
            printf("、");
        }
        printf("%d", array[i]);
    }
    printf("\n");

    return 0;
}

补充说明:上述代码中int array[size];是C99标准引入的可变长度数组特性,如果你使用的编译环境不支持该特性,可以改用动态内存申请实现:

// 头文件新增#include <stdlib.h>
int *array = (int *)malloc(size * sizeof(int));
// 代码逻辑不变,使用完数组后释放内存
free(array);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:15:03