关于运算符优先级的问题
我看了翁恺老师的视频,他后面有一段关于银行存款的题目,底下字幕说有地方错了。double price=0;
printf("请输入存入银行的本金(元):");
scanf("%lf",&price);
double a=price*(1+0.0175)*(1+0.0175)*(1+0.0175);
printf("本金加利息:%lf元\n",a);
这是我按照翁恺老师写出来的代码,我也不清楚哪里错了,是运算符优先级错了吗 根据您提供的代码,我们来分析一下可能出现错误的地方。
首先,关于运算符优先级的问题,可以确定以下事实:
· 乘法运算符 * 的优先级高于加法运算符 +。
那么,我们来看一下翁恺老师的代码和您给出的代码。经过比对,发现问题出在了乘法运算的优先级上。
在翁恺老师的代码中,计算本金加利息的表达式为:
double a = price * (1 + 0.0175) * (1 + 0.0175) * (1 + 0.0175);
而在您给出的代码中,计算本金加利息的表达式为:
double a = price * (1 + 0.0175) * (1 + 0.0175) * (1 + 0.0175);
两段代码是相同的,没有问题。
因此,根据您给出的代码,我无法确定其中存在的错误。也许你可以再仔细检查一下其他可能的问题或提供更多的信息。如果有其他问题,请随时提问,我将竭力帮助您解决。
如果问题已经解决,请设置最佳答案 根据您提供的代码,运算符优先级没有错误。然而,根据您的描述,可能是由于计算利息时出现了错误。根据代码,您计算了三年的利息,但是翁恺老师的视频中提到的是计算一年的利息。所以您需要将代码修改为以下形式:
double a = price * (1 + 0.0175);
printf("本金加利息:%lf元\n", a);
这样,您将得到正确的本金加利息的计算结果。 isdkz 发表于 2023-8-27 16:04
根据您提供的代码,运算符优先级没有错误。然而,根据您的描述,可能是由于计算利息时出现了错误。根据代码 ...
感谢
页:
[1]