朕也来学学 发表于 2023-12-3 11:57:22

为什么我的输出是1.2 2.345(之间有一个空格也可以正常计算输出结果,不应该是在sc

#include <stdio.h>

int main() {
        double a,b;
        printf("键盘输入2个浮点数为:");
        scanf("%lf%lf",&a,&b);
        printf("两个数的积为:%.2lf \n",a*b);
        return 0;
}

为什么我的输出是1.2 2.345(之间有一个空格也可以正常计算输出结果,不应该是在scanf里%lf%lf两个之间写一个空格才对吗,解释一下呗。是不是因为是输入两个不同的数可以直接由空格间隔就行

FishC_GPT 发表于 2023-12-3 11:57:32

您的代码是可以正确输出两个数的积的。在`scanf`函数中,使用空格、制表符或换行符来分隔输入的数据项是可以的。所以在`scanf`的格式字符串"%lf%lf"中,两个`%lf`之间有一个空格是可以的。

例如,以下两种方式都能够正确输入两个浮点数,并计算乘积:

方式一:
输入:1.2 2.345
输出:两个数的积为:2.81

方式二:
输入:
1.2
2.345
输出:两个数的积为:2.81

所以,在输入两个浮点数时,可以使用空格来分隔,也可以使用换行符或制表符来分隔。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。

tommyyu 发表于 2023-12-3 12:01:14

scanf可以先读取一个浮点数(a),此时读到空格后会自动读取下一个数。加不加空格一个样。
页: [1]
查看完整版本: 为什么我的输出是1.2 2.345(之间有一个空格也可以正常计算输出结果,不应该是在sc