gpt4 book ai didi

c - 我的 C 代码无法运行

转载 作者:行者123 更新时间:2023-11-30 21:28:59 25 4
gpt4 key购买 nike

我在这里很困惑。为什么我的这段代码不能正常工作..

代码如下:

void print(int x) {

x = 140;
int i,total, length, value;

if (x < 10){
value = 0;
}
else {
int sum = 1;
for (i = 0 ; i < 10 ; i++){
total = 10 * sum;
sum = total;
length = x / total;
if (length < 10 && 1 <= length){
value = i+1;
break;
}
}
}
value = pow(10,value);
printf("%d\n",value);
}

让我先解释一下代码应该如何工作:

它需要一个整数 x 并打印出它可以除以的 10 的最高幂值。

因此,如果 X = 80,则应打印 10,如果 x = 12435,则应打印 10000。但这并不完全适合我的代码...如果 x = 140,它会打印 99 但是。如果 x = 1400,则打印 1000;如果 x = 14000,则打印 9999;如果 x = 140000,则打印 100000,并且序列继续...

我已经在 J​​ava 中尝试过完全相同的代码,它运行得很好!为什么它在 C 中不起作用?

最佳答案

pow() 返回一个 double 值,您将其转换为整数。因此,它将被截断,而不是四舍五入。

你应该尝试

value = round(pow(10,value));

关于c - 我的 C 代码无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35955946/

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