c语言初学者求助
这个程序输入1之后不应该直接输出 please input a number:1么,为什么输完1回车以后没有出来东西,再输一个1按回车才出来那个scanf(“%d”,&n)的值,再输1才出现the number is 1 ?
1
the number is 1
#include <stdio.h>
void main()
{
int n;
printf("please input a number:");
scanf("%d",&n);
printf("%d",scanf("%d",&n));
while( scanf("%d",&n) != 1)
{
printf("you didn't input a number!!\nplease input again!!\n");
getchar();
}
if(n==1)
{
printf("the number is %d\n",n);
}
}
scanf("%d",&n) scanf("%d",&n);
printf("%d",scanf("%d",&n));
第一个scanf()获取了你第一个值,保存到了n,然后运行到下一行,scanf("%d",&n)又在等待你键入一个数值,键入后输出这个值。然后下一个scanf()又要获取一个输入......
你还不懂电脑的思维方式,看程序要一行一行,一个关键字一个关键字的往下捋,没经过一个关键字,你要考虑到程序做了什么动作,变量发生了什么变化。 你先好好看看你的代码对n做了几次赋值再说,再好好捋一捋你的逻辑。 楼主,解释清楚以下几个问题
scanf()这个东西到底是什么?,他到底是干什么的?
不需要你揭示出它的内涵,只需要你解释明白,这个东西的性质,功能是什么,怎么起作用的?
希望在你看这层楼之前,想清楚我之前的问题
1.scanf()是个函数,这个函数的作用是通过用户的键盘输入,以一定的格式传递给你的变量.
所以scanf()是对你的变量下手的,最终scanf尘归尘土归土,什么也没有变,
变的是你的变量.
每一次执行scanf()都会下一次手,每一次执行scanf,他都会朝你要这个变量的值.
所以你上面的代码,一共有几次scanf,他就会向你要几次值.
页:
[1]