朕也来学学 发表于 2023-11-24 22:25:18

打印

#include <stdio.h>

int main(){
        int a,b;
        char c,d;
        float e,f;
        scanf("%d,%d",&a,&b);
        scanf("%c,%c",&c,&d);
        scanf("e=%lf,f=%lf",&e,&f);
        printf("a=%d,b=%d,\nc=%c,d=%c,\ne=%lf,f=%lf",a,b,c,d,e,f);
        return 0;
       
}

咋输入这个5,3c,Ae=1.2,f=3.4打印不出来正确答案

FishC_GPT 发表于 2023-11-24 22:26:15

你好!你的代码有几个小问题,导致无法正确打印出答案。

首先,第一个scanf语句中,你使用了"%d,%d"来读取两个整数。但是你输入的格式是"5,3",没有逗号后面跟着一个整数。因此,你可以将scanf语句修改为以下形式:

scanf("%d,%d",&a,&b);

第二个scanf语句中,你使用了"%c,%c"来读取两个字符。但是在输入中,你输入了"c,A",而不是一个字符跟着逗号,然后再输入另一个字符。因此,你可以将scanf语句修改为以下形式:

scanf(" %c,%c",&c,&d);// 注意这里的空格,用于跳过换行符(Enter键)

最后一个scanf语句中,你使用了"%lf"来读取两个双精度浮点数。但是在输入中,你输入了"e=1.2,f=3.4",而不是仅仅输入两个浮点数。因此,你可以将scanf语句修改为以下形式:

scanf("e=%f,f=%f",&e,&f);

在printf语句中,你使用了"%lf"来打印双精度浮点数。但是在之前的scanf语句中,你使用了"%f"来读取浮点数,因此应该使用"%f"来打印浮点数。同样地,你可以将printf语句修改为以下形式:

printf("a=%d,b=%d,\nc=%c,d=%c,\ne=%f,f=%f",a,b,c,d,e,f);

根据以上修改,完整可运行的代码如下所示:

#include <stdio.h>

int main(){
    int a,b;
    char c,d;
    float e,f;
    scanf("%d,%d",&a,&b);
    scanf(" %c,%c",&c,&d);// 注意这里的空格,用于跳过换行符(Enter键)
    scanf("e=%f,f=%f",&e,&f);
    printf("a=%d,b=%d,\nc=%c,d=%c,\ne=%f,f=%f",a,b,c,d,e,f);
    return 0;
}

现在,当你输入"5,3c,Ae=1.2,f=3.4"时,就可以正确打印出答案了。希望对你有帮助!如果还有其他问题,请随时提问。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。

KeyError 发表于 2023-11-24 22:33:31

本帖最后由 KeyError 于 2023-11-24 22:45 编辑

你试试输入5,3
c,A
e=1.2,f=3.4
而不是
5,3c,Ae=1.2,f=3.4
或者用空格分隔也行,
如果您把他们全部联在一起的话,
scanf("%d,%d",&a,&b)会一次把它读取完,
而“5,3c,Ae=1.2,f=3.4”无法被解码为"%d,%d"。
这个我觉得是输入问题,代码没问题。
对了,%lf换成%f更好,因为e和f是float。

求最佳

KeyError 发表于 2023-11-24 22:48:59

醉驾达昂
页: [1]
查看完整版本: 打印