输入第一个输入后,程序关闭
#include<stdio.h>
int main(void)
{
int biology,chemistry;
printf("\nEnter marks for maths");
scanf("%d",biology);
printf("\nEnter marks for tech1");
scanf("%d",chemistry);
return(0);
}
答案 0 :(得分:5)
C函数参数始终是“按值传递”,这意味着函数scanf
只能看到您指定为参数表达式的当前值的副本。
如果您通过biology
,那么它只会看到未初始化的值。另一方面,&biology
是指向变量的指针值,scanf
可以使用它来修改biology
。
scanf
需要修改如下
scanf("%d", &biology);
scanf("%d", &chemistry);
要详细了解这一点,请阅读Why does scanf require &
答案 1 :(得分:1)
您正在向scanf()调用传递不正确的参数。您必须传递变量的地址(请参阅scanf()
的文档)以匹配%d
格式。
scanf("%d", &biology);
...
scanf("%d", &chemistry);
您还应该检查返回代码,看看scanf()
调用是否成功。