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;
}
我写了下面的代码:
#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;
}