c语言问题,代码输入完第一个scanf就自己结束了,第二个输出的文字什么的都不显示,求大神帮忙看看

#include <stdio.h>
int main()
{
int qi;
int year;
printf("请输入数字:");
scanf("%d\n",qi);
printf("请输入年份:");
scanf("%d",year);
return 0;
}

这个是输入那少了一个取地址的符号
将scanf("%d\n",qi);改成scanf("%d\n",&qi);
将scanf("%d",year);改成scanf("%d",&year);

----------------同时我尝试了一下你的代码,发现输入第一个数以后,紧接着就需要输入第二个数才会提示输入年份,这是因为在第一个scanf语句中你使用了换行符,输入第一个数后需要回车,而回车就是换行,所以又一点问题,我改了一下
#include <stdio.h>
int main()
{
int qi;
int year;
printf("请输入数字:\n");
scanf("%d",&qi);

printf("请输入年份:\n");
scanf("%d",&year);

printf("%d,%d",qi,year);
return 0;
}追问

但我发现我在主函数单独输入
int year=2019;
printf("%d",&year);
运行就只出现一串数字7011660,请问您知道这是什么问题吗?

追答

因为你打印出来的是地址,所以是这样一串
把printf("%d",&year)中&删掉
&这个字符表示取地址,一般除了指针还有你是打印地址。
在scanf中才用,printf中不用,

追问

哦好的!谢谢大神!

温馨提示:答案为网友推荐,仅供参考
相似回答