C-программа вылетает / перестает работать после второго scanf () - PullRequest
0 голосов
/ 27 октября 2019

Я написал следующий код:

#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-компилятор (gcc).

1 Ответ

0 голосов
/ 27 октября 2019
 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;

}

...