gpt4 book ai didi

c - 基本的,关于说明符

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

#include<stdio.h>

int main(){
double n1,n2;
float n3;
printf("input 2 flt:");
scanf("%lf %lf",&n1,&n2);
n3 = n1 * n2;
printf("n1 * n2 = %.2lf",n3);
}

当我设置n1,n2为float时,n3无法正确计算,为什么?

代码最初来自a online tutorial , 修改以测试 %lf 的功能。

最佳答案

因为您需要使用正确的 scanf() 说明符。

如果您使用float,则"%f",如果您使用double,则"%lf" .

对于float,你可以这样做

#include<stdio.h>

int main()
{
float n1, n2;
float n3;

printf("input 2 flt:");
if (scanf("%f%f", &n1, &n2) == 2) {
n3 = n1 * n2;
printf("n1 * n2 = %.2f",n3);
}
}

对于double

#include<stdio.h>

int main()
{
double n1, n2;
double n3;

printf("input 2 flt:");
if (scanf("%lf%lf", &n1, &n2) == 2) {
n3 = n1 * n2;
printf("n1 * n2 = %.2f",n3);
}
}

请注意,在使用 n1n2 的值之前,我检查了 scanf() 是否返回了 2,这是因为如果您不检查程序可能会调用未定义的行为,因为 n1 和/或 n2 未被初始化。

您的 printf() 说明符也是错误的,对于 floatdouble 您可以使用 "%f",阅读文档。

关于c - 基本的,关于说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45782899/

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