后的程序关闭后,我进入第一输入错误时运行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);
}
后的程序关闭后,我进入第一输入错误时运行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);
}
您传递不正确的参数,以scanf()的调用。您必须通过变量的地址(请参阅scanf()
的文档)以匹配%d
格式。
scanf("%d", &biology);
...
scanf("%d", &chemistry);
您还应该检查返回码,看看scanf()
调用是否成功。
C函数参数始终为“按值传递”,这意味着函数scanf
只能看到您指定为参数表达式的任何当前值的副本。
如果您通过biology
,那么它只会看到未初始化的值。另一方面&biology
是一个指针变量的指针值,即scanf
可以用这个来修改biology
。
的scanf
将需要进行如下修改
scanf("%d", &biology);
scanf("%d", &chemistry);
要理解这一点,详细阅读Why does scanf require &
用途及生物学与化学 – Fredrik
几乎任何[初学者书(http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list)会告诉你你需要知道什么。请找到并阅读一个。 –