Dev-C++中的显示问题。

来源:百度知道 编辑:UC知道 时间:2024/06/01 16:18:30
在网上看到说如果要看内容显示,就加个gethar();我这样做,是可以了。但是,我编的是比较两个数字大小,并要它择选输出较大的数。
具体程序如下:
#include"stdio.h"
main()
{
int m,n,c;
int max(int x,int y);
printf("intput m,n:\n");
scanf("%d,%d",&m,&n);
c=max(m,n);
}
int max(int x,int y)
{
int z;
if(x>y)z=y;
else z=y;
return(z);
gethar();
}
程序没出错,而且屏幕也显示出了"intput m,n"
可是在我输入两个数字后例如112,116并按回车以看它选择输出的较大数时,却是一闪而过。请问这么解决啊,我还是新手,请高手详细说哈,谢谢了~~~

你的代码关键在这里两行:
return(z);
gethar();

函数在执行getchar之前已经返回了,因此代码中的getchar并没有执行。如果按照你的写法,上面两行应该反过来。

p.s. getchar拼错了。

=========================

参看以下回答:
http://zhidao.baidu.com/question/40924922.html

可能是楼主习惯于VC++的查看方式,VC++会在IDE状态下对已经编译的控制台程序加上一个外壳,其作用就是当该控制台程序运行时,用户需要额外单击任意键才能中止程序运行,类似于Windows系统控制台的pause命令,这样可以方便程序员查看程序的运行结果。

在Dev-C++中,我们可以在代码(一般是main函数)的尾部添加一句“system("pause");”或者“getch();”都可以实现上述效果。当然,你可能需要添加适当的头文件才能使用这两个函数,其中system()函数在process.h中定义,getch()在stdio.h中定义。

如楼上所说,getchar()没有执行到函数就返回了。把return(z)与getchar()换下位置:
int max(int x,int y)
{
int z;
if(x>y)z=y;
else z=y;
getchar();
return(z);
}