gpt4 book ai didi

将基于 n 的数字转换为十进制但不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 02:47:12 25 4
gpt4 key购买 nike

我尝试用 C 将基于 n 的数字转换为十进制。我有以下代码:

scanf("%d", &n);
scanf("%d %d %d %d", &n1, &n2, &n3, &n4);

dec = ( n1*pow(n,3) + n2*pow(n,2) + n3*pow(n,1) + n4*pow(n,0) );

它工作正常,直到我输入 n=10 & n1 n2 n3 n4=0 2 5 4。

结果应该是254,但是终端显示是253。原来从200-999开始,dec减1。但是当我输入1000时,dec= 1000。我该如何解决这个问题?

最佳答案

很可能您已将 dec 声明为 int 而函数 pow返回一个 double 值。这里 double 被转换为 int 并被四舍五入。

改为

double dec = ( n1*pow(n,3) + n2*pow(n,2) + n3*pow(n,1) + n4*pow(n,0) );
printf("%f",dec);

输出将是

254.000000

关于将基于 n 的数字转换为十进制但不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26053051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com