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

非循环实现C语言数组读写报错,无法打印数组内容求排查

问题分析与修正

你犯的两个低级错误:

  • 参数分隔错误:scanf和printf的多个参数必须用逗号分隔,你写的&num[0] &num[1]这种写法,编译器会将其解析为对&num[0]和&num[1]执行位运算,而int*和int类型无法进行位运算,因此触发类型不匹配错误。
  • printf输出错误使用取地址符:%d格式说明符需要接收int类型的数值,但你传入的&num[i]是指向数组元素的指针(int*类型),这会导致输出内存地址而非实际元素值,正确写法是直接使用num[i]。

修正后的代码:

#include<stdio.h>

int main(){
    int num[5];
    printf("Enter the numbers: ");
    // 用逗号分隔每个scanf参数
    scanf("%d %d %d %d %d", &num[0], &num[1], &num[2], &num[3], &num[4]);
    // 输出时直接传入数组元素值,无需取地址
    printf("Your numbers are : %d %d %d %d %d\n", num[0], num[1], num[2], num[3], num[4]);
    return 0; // 补充main函数的返回值,符合C语言标准规范
}

这段代码无需循环,就能一次性读取5个输入存入数组,并直接打印数组内容,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:36:34