gpt4 book ai didi

c - 我是否使用了正确的格式说明符?

转载 作者:太空宇宙 更新时间:2023-11-04 07:47:44 24 4
gpt4 key购买 nike

我写了一个简单的计算器程序,结果总是显示为 -0.00000000这是代码的一部分:

int main() {

char symbol;
double num1, num2;
double total_multi = num1*num2;

scanf("%lf %c %lf", &num1, &symbol, &num2);

switch(symbol){
case '*': printf("The answer is: %lf * %lf = %lf", num1,
num2, total_multi );
break; }
return 0;
}

是我使用了错误的格式说明符还是其他原因?

最佳答案

您的格式说明符是正确的,但在调用 scanf 进行初始化之前,您将 num1num2 相乘。如果在调用 scanf 之后移动 total_multi 的初始化,则不会出现此问题。

此外,当使用 scanf 读取用户输入时,强烈建议您检查其返回值是否与格式字符串中的格式说明符数量相匹配:

double num1, num2;
double total_multi;

if(scanf("%lf %c %lf", &num1, &symbol, &num2) != 3)
{
/* Handle scanf failure */
}
total_multi = num1 * num2;

在不太紧急的情况下,printf(而不是 scanf)格式字符串中的 %lf 是多余的,因为 %f 适用于 double 类型,float 值会自动提升为 double

关于c - 我是否使用了正确的格式说明符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55870743/

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