printf正在返回32676。请让我理解为什么下面的输出不是11 #包括 void main() { int a,b,p; printf(“输入a和b的值”); scanf(“%d%d”、&a和&b); p=printf(“a=%d b=%d p=%d”,a,b,p); }

printf正在返回32676。请让我理解为什么下面的输出不是11 #包括 void main() { int a,b,p; printf(“输入a和b的值”); scanf(“%d%d”、&a和&b); p=printf(“a=%d b=%d p=%d”,a,b,p); },c,printf,C,Printf,这是我问题的代码。将输入视为a=2和b=3。更改: #include<stdio.h> void main() { int a,b,p; printf("Enter values of a and b"); scanf("%d%d", &a, &b); p=printf("a=%d b=%d p=%d",a,b, p); } 致: p=printf(“a=%d b=%d\n”,a,b);//为什么11而

这是我问题的代码。将输入视为a=2和b=3。更改:

    #include<stdio.h>
    void main()
    {
    int a,b,p;
    printf("Enter values of a and b");
    scanf("%d%d", &a, &b);
    p=printf("a=%d b=%d p=%d",a,b, p);
    }
致:


p=printf(“a=%d b=%d\n”,a,b);//为什么
11
而不是
42
?我建议你重新仔细阅读你的程序。在你给它赋值之前,你正在试图打印
p
。我投票结束这个问题,因为没有显示任何努力。甚至是格式字符串中被遗忘的字母。所有其他问题都在这里被回答了一百万次,或者可以通过阅读任何一本C语言书籍来回答
a=%
-->
a=%d
,我们不知道您将它作为一种输入。
p=printf("a=% b=%d p=%d",a,b, p);
p = printf("a=%d b=%d\n", a, b); // <<< fix format string
printf("p=%d\n", p);             // <<< print `p` *after* you have assigned a value to it