gpt4 book ai didi

c - C语言中类型转换数据打印错误

转载 作者:行者123 更新时间:2023-11-30 20:18:12 24 4
gpt4 key购买 nike

用 C 语言

int n=100;
printf("%d", (int)(sqrt((double)n)));

当我使用此代码时,它会打印正确答案 (10)。

但是下面的代码总是打印 0

int n; 
int max = (int)(sqrt((double)n));
printf("%d", max);

为什么答案不同?

最佳答案

int n=100;
printf("%d", (int)(sqrt((double)n)));

在本例中,n 的值已知,即 100。因此 sqrt((double)n) 返回正确的值。

int n; 
int max = (int)(sqrt((double)n));
printf("%d", max);

此处,变量 n 未初始化。该变量可能持有不确定的值,具体取决于它是本地声明(在 block 内,在这种情况下 n 的值将是垃圾值)还是全局声明(在 block 外,在这种情况下 n 的值将为零) )。始终初始化变量以避免此类错误。

关于c - C语言中类型转换数据打印错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54643735/

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