首次输入后运行C程序时出错

时间:2016-11-30 12:21:16

标签: c

输入第一个输入后,程序关闭

#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);
}

2 个答案:

答案 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()调用是否成功。