不知道这个代码问题出哪了

#include <stdio.h>
int main()
{
int a, b;
float d, e;
char c1, c2;
double f=0.0 , g;
long m, n;
unsigned int p, q;
a = 61; b = 62;
c1 = 'a'; c2 = 'b';
d = 3.1415; e = -6.543;
f==3157.890121; g = 0.0123456789;
m = 5000; n = 6000000;
p = 32768; q = 40000;
printf("a=%d,b=%d\n c1=%c,c2=%c\n d=%6.2f,e=%6.2f\n",a, b, c1, c2, d, e);
printf("f=%15.6f,g=15.12f\n m=%ld,n=%ld\n p=%u,q=%u\n",f,g,m,n,p,q);
return (0);
}

g输出少了个%号,导致后面全部错位了。
另外f==3157.890121写错了,应该是f = 3157.890121
修改如下:

#include <stdio.h>
int main()
{
    int a, b;
    float d, e;
    char c1, c2;
    double f=0.0 , g;
    long m, n;
    unsigned int p, q;
    a = 61; b = 62;
    c1 = 'a'; c2 = 'b';
    d = 3.1415; e = -6.543;
    f=3157.890121; g = 0.0123456789;
    m = 5000; n = 6000000;
    p = 32768; q = 40000;
    printf("a=%d,b=%d\n c1=%c,c2=%c\n d=%6.2f,e=%6.2f\n",a, b, c1, c2, d, e);
    printf("f=%15.6f,g=%15.12f\n m=%ld,n=%ld\n p=%u,q=%u\n",f,g,m,n,p,q);
    return (0);
}

f g是double,输出应该%lf
而且g的控制符没写%,f==3157.890121;多打了等号

img

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632