gpt4 book ai didi

在 C 中通过 scanf 复数

转载 作者:行者123 更新时间:2023-12-05 01:26:18 25 4
gpt4 key购买 nike

我对以下代码片段有疑问:

int main()
{
int n = 3;

complex_t t[3];
for(int i = 0; i < n; i++)
{
double x, y;
printf("Enter complex number: ");
scanf("%f %f", &x, &y);
t[i].re = x;
t[i].im = y;
}
}

当我尝试将 x 和 y 传递给程序时,它的值没有改变,而是 0.00000。你能帮帮我吗?

最佳答案

您已将 xy 声明为 double ,但随后继续使用 float 的格式说明符 (%f)。因此,最终结果是将它们读入,就好像它们是常规 float 一样,然后将结果塞入 double ,从而在您尝试实际使用它们时留下意想不到的值。

您需要在此处使用专门用于 double 的格式说明符 (%lf)。

scanf("%lf %lf", &x, &y);

参见 format string specifications有关不同格式说明符的更多信息。

关于在 C 中通过 scanf 复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70385688/

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