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

如何解决C语言程序运算中出现随机错误结果的问题?

两数相乘程序输出随机值的问题分析与修复

问题根源

你代码里的核心错误是变量计算时机完全错误:

  • 定义int a, b ,c = a * b;时,直接用未赋值的a和b计算初始化c。此时a和b属于局部自动变量,内存里是随机的垃圾值,所以c从一开始就存了个无效结果。
  • 后续用scanf读入a和b的操作,不会反过来修改已经初始化好的c,最后输出的自然是之前的垃圾数值。

修复后的代码

#include<stdio.h>
int main()
{
    int a, b, c;
    printf("Type two no.s to be multiplied, ensuring space between them");
    scanf("%d%d", &a, &b);
    c = a * b; // 等输入完成后再计算乘积
    printf("The required output is = %d\n", c);
    return 0;
}

关键注意点

  • 局部变量(比如main里的a、b、c)默认不会被初始化,使用未赋值的变量会导致未定义行为,输出随机值是典型表现。
  • 必须在获取到有效输入后,再进行乘积计算并赋值给c。
  • 输出语句补充\n,可以确保输出内容正常换行刷新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:22:02