gpt4 book ai didi

c - 为什么变量 b 在 for 循环中没有改变?

转载 作者:行者123 更新时间:2023-11-30 18:23:59 26 4
gpt4 key购买 nike

嘿,我想了解为什么变量 b 不改变,并且当我打印它时它总是像我定义的那样(零)。我的代码有什么问题吗?

通过这段代码,我想找到最大整数 (b),即 10^b <= n(给定 n 和整数)。

这是我的代码(用 c 编写):

#include <stdio.h>                          
#include <math.h>

int lg (int n);

int main() {

int a = 0;
scanf("%d", &a);
printf ("\nN=%d e M=%d\n", a, lg(a));

return 0;
}

int lg (int n) {
double b = 0.0;

for (int i=0; i==n; i++) {
if (pow(10, i) <= n) {
double b = i;
} else {
}
}
return (int)b;
}

最佳答案

您正在声明一个名为 b 的新变量在循环内并将其设置为等于 i 。由于这是一个不同的范围,它与 b 不是同一个变量。在循环之前声明。换行

double b = i;

b = i;

您的循环条件也设置为 i==n; 。这意味着如果您的输入为 0,您的循环只会运行一次。这可能应该是 i < n; .

关于c - 为什么变量 b 在 for 循环中没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47078786/

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