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

C语言单利计算程序1可运行程序2失效原因求助

故障原因分析

  • 首先说明笔误问题:你粘贴的两份代码里都把单利计算公式的p*r*t漏写乘号写成了prt,C语言不支持数学书写中的隐式乘法,会将prt识别为未声明的变量,正常情况下两份代码都无法编译通过。你提到程序1可正常运行,说明你本地实际编写的程序1是正确加了乘号的,属于粘贴时的疏漏。
  • 程序2的核心错误是计算逻辑执行顺序错误:排除笔误的前提下,程序2将利息计算语句interest = p*r*t / 100;放在了所有scanf输入语句之前,此时p、t、r三个变量还未被用户输入赋值,存储的是内存中的随机垃圾值,计算得到的interest自然是无效值。后续你输入三个变量的有效值后,程序不会重新执行利息计算逻辑,最终输出的还是最初的垃圾值。

程序1可以正常运行的原因就是它把单利计算放在了所有输入完成之后的printf语句中,三个变量都已经拿到了有效值才执行计算。

修正后的程序2代码

#include<stdio.h>

int main() {
    int p, t;
    float r, interest;
    printf("please enter the principle amount\n");
    scanf("%d", &p);
    printf("please enter the time period of repayment\n");
    scanf("%d", &t);
    printf("please enter the rate of interest for lending\n");
    scanf("%f", &r);
    // 所有输入完成后再计算利息
    interest = p * r * t / 100;
    printf("The simple interest is %f", interest);
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:15:01