C语言的一个问答程序问题【后追分】

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:30:54
#include<stdio.h>
#include<stdlib.h>
void iq(int *num)
{
char choose,choose2;
printf("问题\n");
printf("a.xx b.xx c.xx d.xx\n");
scanf("%c",&choose);
getchar();
if(choose=='a')
*num=*num+50;
printf("问题\n");
printf("a.xx b.xx c.xx d.xx\n");
scanf("%c",&choose2);
getchar();//这里为什么可以用它消掉回车?
if(choose2=='b')
*num=*num+50;
}

int main()
{
int numbegain=0;
printf("这是一个XX程序,根据提示选择abcd\n");
iq(&numbegain);
printf("你的智商是:%d",numbegain);
system("pause");
}
如果真的回答得好,一定会追满50!大家都知道,如果一个问题没人解决,分数就浪费了……现在分没以前那么多了我…………

getchar()是以回车符作为结束符的..所以接收到回车后就继续执行下一个语句,如果不加,scanf语句是可以空格或者结束的,这样上面输入了空格加回车,下面读取的时候可能就只读取了回车!没有任何数据。所以说 getchar()语句可以消掉回车

你想问什么?

为什么getchar()可以消掉回车?这个函数是让用户输入一个字符,程序执行到这里会反复扫描看你是不是按下了一个键,其实不管按什么程序都会过去的

还真没看懂什么意思,就算没那句getchar();也没问题啊

getchar 到输入流中去取字符,如果输入流中有剩余回车键,它会取进。