我对以下代码片段有问题:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试将 x 和 y 传递给程序时,它的值不会改变,而是 0.00000。你能帮助我吗?
您已将xand声明y为双精度数,但随后继续使用浮点数 ( %f) 的格式说明符。因此,最终结果是像普通浮点数一样读取它们,然后将结果塞入双精度数中,从而在尝试实际使用它们时留下意想不到的值。
您需要%lf在此处使用专门针对双精度数 ( ) 的格式说明符。
scanf("%lf %lf", &x, &y);
Run Code Online (Sandbox Code Playgroud)
有关不同格式说明符的更多信息,请参阅格式字符串规范。
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |