C语言输入p、n、r后计算利息i始终返回0.0000问题排查
问题根因
- 核心错误是计算逻辑执行顺序颠倒:C语言代码按从上到下的顺序逐行执行,你在调用
scanf读取用户输入的p、n、r三个变量值之前,就先执行了i=p*n*r/100;的计算逻辑。此时三个变量都是未初始化的局部变量,存储的是内存中的随机脏值,最终输出的i自然不是预期的利息结果。
修正方案
调整计算语句的位置,将利息计算逻辑放在所有输入读取完成之后、结果打印之前即可,修正后完整代码如下:
int main() { int p,n; float r,i; printf("enter principle=\n"); scanf("%d",&p); printf("enter rate=\n"); scanf("%f",&r); printf("enter no.of years=\n"); scanf("%d",&n); i=p*n*r/100; printf("value of i=%f",i); return 0; }
内容的提问来源于stack exchange,提问作者Vivek
相关产品推荐
相关产品推荐

