You need to enable JavaScript to run this app. C语言计算矩形面积时将area=a*h写在变量输入前的问题排查
优惠活动
大模型
产品
解决方案
定价
更多

C语言计算矩形面积时将area=a*h写在变量输入前的问题排查

C代码问题分析

你写的这段代码运行时会出现面积计算结果完全错误、每次运行输出的面积值随机不可预测的问题,核心原因有两个:

  1. C语言的代码是按书写顺序从上到下顺序执行的,你在还没通过scanf读取用户输入的a、h有效值之前,就已经执行了area = a * h的计算逻辑,后续用户输入的数值只会更新a、h变量本身,不会触发重新计算area的值,最终输出的area永远是计算时的旧值。
  2. 你声明的a、h是函数内的局部自动变量,没有初始化时存储的是内存空间里残留的随机垃圾值,计算area时用的就是这两个无意义的垃圾值,所以最终输出的面积完全不可预测,和你输入的长、宽数值没有任何关联。

修正方案

只需要把area = a * h;这行代码移动到两次scanf读取完a、h的有效值之后、打印面积之前即可,修正后的核心代码逻辑如下:

#include<stdio.h>
int main()
{
    int a,h;
    int area;

    printf("enter the value of a=  ");
    scanf("%d", &a);
    printf("the value of a is %d  \n", a);

    printf("enter the value of h=  ");
    scanf("%d", &h);
    printf("the value of h is %d \n", h);

    // 拿到有效输入后再计算面积
    area=a*h;
    printf("The area is %d", area);
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 13:57:02