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

C语言单代码适配多组自定义输入:输入内容无法显示问题排查

问题:C语言代码无法显示输入的自定义数字

问题背景

  • 需求:编写C语言代码处理两组自定义输入,输出输入的数字、它们的总和及平均值
  • 现状:现有代码能正确计算总和与平均值,但无法显示输入的自定义数字
  • 初始代码:
#include <stdio.h>
int main() {
    int size, avg, i;
    int sum = 0.0;
    int num_array[6];

    printf("Elements are: %d ",&num_array);

    for (i = 0 ; i < 6 ; i++) {
        printf(" ");
        scanf("%d",&num_array[i]);
        sum +=num_array[i];
    }

    printf("\nSum :%d\n",sum);

    avg = sum / 6;
    printf("Average : %d",avg);

    return 0;
}
  • 当前错误输出:

Elements are:

Sum :24

Average : 4

  • 预期输出:

Elements are: 3 7 4 2 6 2

Sum :24

Average : 4

错误原因

原代码核心问题:

  1. 错误在输入前打印数组地址(&num_array),用%d输出地址属于格式不匹配,且此时还未输入任何数字,根本无法获取输入值
  2. 没有在输入完成后遍历数组,输出已存储的元素

修正后的代码

#include <stdio.h>
int main() {
    int avg, i;
    int sum = 0; // 修正int类型变量的初始化方式
    int num_array[6];

    // 先完成所有输入
    for (i = 0 ; i < 6 ; i++) {
        scanf("%d",&num_array[i]);
        sum += num_array[i];
    }

    // 打印输入的元素
    printf("Elements are:  ");
    for (i = 0 ; i < 6 ; i++) {
        printf("%d ", num_array[i]);
    }

    printf("\nSum :%d\n", sum);

    avg = sum / 6;
    printf("Average : %d", avg);

    return 0;
}

说明

  • 修正了sum的初始化逻辑,int类型用整数0初始化更规范
  • 将输入与输出逻辑分离:先完成所有输入操作,再遍历数组打印输入的数字
  • 测试时输入3 7 4 2 6 2,输出将完全符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:35:21