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

问题描述 投票:0回答:1

我编写了以下代码:

#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 Code和gc-compiler(gcc)。

c crash printf scanf
1个回答
0
投票
 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;

}

© www.soinside.com 2019 - 2024. All rights reserved.