C 程序在第二次 scanf() 后崩溃/停止工作

C-Program crashes/ stops working after second scanf()

我写了下面的代码:

#include <stdio.h>

int main (void){

    int a;
    int b;

    /* scan first number*/
    printf("number 1: ");
    scanf("%d", &a);

    /* scan second number*/
    printf("number 2: ");
    scanf("%d", &b);

    int c = a + b;

    printf("%d + %d = %d",a,b,c);

    return 0;
}

它编译成功,我可以 运行 程序,但是在第二个“scanf”之后它甚至在“printf("%d * %d = %d",a,b,c);”出现之前就崩溃了。 我使用 Visual Studio 代码和 gc 编译器 (gcc)。

 int c = a + b;

你需要把这条线移到后面

/* scan first number*/
printf("number 1: ");
scanf("%d", &a);

/* scan second number*/
printf("number 2: ");
scanf("%d", &b);
*insert it here*

您正在尝试添加未声明的变量。程序崩溃是因为当您尝试将 c 变量打印为 int 时,计算机无法在内存中找到它。 C 没有值,或者你可以这样做:

int main (void){

int a;
int b;


/* scan first number*/
printf("number 1: ");
scanf("%d", &a);

/* scan second number*/
printf("number 2: ");
scanf("%d", &b);

printf("%d + %d = %d",a,b,a+b);

return 0;

}