为什么这个C语言程序在DEV c++上运行时,去掉了scanf后面的printf,运行时就没有输入输出,直接结束。

#include <stdio.h>
int main(void)
而且把scanf 换成scanf_s就可以在vs2015上运行成功
{
int a;
scanf("%d",&a);printf("%d",a);
if (a==0)
printf ("0");
else if (a>0)
{
if (a%2==0)
printf ("正偶数");
else
printf ("正奇数");
}
else
{
if (a%2==-1)
printf ("负奇数");
else
printf ("负偶数");
}
return 0;
}

有可能是因为输入缓冲区没有清空,所以没有让用户输入的动作。在scanf("%d",&a);之前做一次清空输入缓冲区的动作应该就会正常了,即调用一次 fflush(stdin);
没有输出可能是因为没有遇到换行符,部分编译器是会这样的,要遇到换行才去输出,你可以在return 0;之前输出一次换行,应该就可以了,即调用一次 printf("\n");追问

输入缓冲区为什么会有东西,我都没有输入啊。。fflush(stdin);确实有用
而且为什么scanf后面加printf就可以运行

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