C程序不显示错误,但不显示';不显示输出
罗伊想在Facebook上更改他的个人资料图片。现在Facebook对我们可以上传的图片尺寸有一些限制。 图片的最小尺寸可以是L x L,其中L是正方形边的长度 现在罗伊有N张不同尺寸的照片。 照片的尺寸表示为W x H 式中,W-照片宽度和H-照片高度 上传任何照片时,可能会发生以下事件:C程序不显示错误,但不显示';不显示输出,c,C,罗伊想在Facebook上更改他的个人资料图片。现在Facebook对我们可以上传的图片尺寸有一些限制。 图片的最小尺寸可以是L x L,其中L是正方形边的长度 现在罗伊有N张不同尺寸的照片。 照片的尺寸表示为W x H 式中,W-照片宽度和H-照片高度 上传任何照片时,可能会发生以下事件: 如果任何宽度或高度小于L,将提示用户上载另一个。在这种情况下,打印“上载另一个” 如果宽度和高度都足够大 (a) 如果照片已经是方形的,那么它是可以接受的。在这种情况下,打印“已接受”。 (b) 否则会提示
#包括
#包括
内部主(空)
{
int len;/*len是正方形边的长度*/
scanf(“%d”和“len”);
智力测验;
扫描频率(“%d”和测试);
而(测试--)
{
int w,h;
/*w-照片的宽度和h-照片的高度*/
scanf(“%d%d”,&w,&h);
如果(w==len&&h==len)
{
printf(“已接受的”);
}
else如果(w>len | | w==len&&h>len | h==len)
{
printf(“裁剪它”);
}
其他的
{
printf(“上载另一个\n”);/*打印*/
}
}
返回0;/*成功*/
}
它将显示输出,但程序运行速度比您预期的快。一旦显示输出,它将立即关闭。它不会等到你读了它。
所以使用
getch()
在conio.h
中声明,以便在打印完所有输出后(就在return
语句之前)获得一个按键作为输入。它将使程序等待用户按键后退出。这是屏幕截图。它在我身上运行,没有错误
注意:这不是答案。但这只是给出图片示例的唯一方法:)无需放弃
也许你只需要把getchar()代码>在返回前的代码末尾,让屏幕暂停一段时间。它正以非常快的速度退出,原因是
相当于:
else if(w>len || (w==len && h>len) || h==len)
您需要使用的是:
else if( (w>len || w==len) && (h>len || h==len) && (w == h) )
您可以将其简化为:
else if( w >= len && h >= len && w == h )
可进一步简化为:
else if( w >= len && w == h )
如果您的问题是根本看不到输出,很可能是因为它在IDE中运行,并且输出窗口在您看到它之前就关闭了。在main()
的末尾明智地使用getchar()
可能就是解决这个问题所需的全部,尽管我可能更喜欢从命令行运行它
在任何情况下,由于&&
的优先级高于|
,因此第二个条件实际上是:
else if ((w > len) || (w == len && h > len) || (h == len))
这显然是错误的,因为如果照片的宽度大于所需的宽度,则无论其他子条件如何,都会导致裁剪请求
您最好更仔细地遵循文本规范,这样您就可以更轻松地检查它。这将需要一些类似的东西(稍微简化的规范仍然符合最初的意图):
- 如果任何宽度或高度小于
L
,系统将提示用户上载另一个
- 否则两者都足够大。如果照片已经是方形的,那么它是可以接受的
- 否则会提示用户裁剪它
这方面的代码要简单得多:
if ((w < len) || (h < len)) {
puts ("UPLOAD ANOTHER");
} else if (h == w) { // Both large enough otherwise previous
puts ("ACCEPTED"); // condition would have been true.
} else {
puts ("CROP IT");
}
if((w
Gosh,请充分识别您的代码。这将使我们和您的事情变得更容易。请提供输入值。当你说“不显示输出”时,你的意思是根本没有输出,还是它没有显示你期望的输出?最后,与其让别人帮你调试,不如学着有效地调试——特别是学着使用调试器,这对你更有好处。只需将getch()放在return之前的末尾,不要忘记检查输入操作是否有效。例如,如果您键入的尺寸为250x325
,您就会遇到麻烦。不管怎样,还有一个其他的。。。如果有输出的话,它会输出。@jace,我怀疑没有输出。我认为OP没有得到他们所期望的输出。或者,如果(w>=len&&w==h)
或者,由于前面的检查已经确定h
和w
都足够大,或者进一步简化为,否则如果(w==h)
:-)C中既没有conio.h
也没有getch()
,尽管印度教育机构倾向于继续教授技术已死的人:——)
else if ((w > len) || (w == len && h > len) || (h == len))
if ((w < len) || (h < len)) {
puts ("UPLOAD ANOTHER");
} else if (h == w) { // Both large enough otherwise previous
puts ("ACCEPTED"); // condition would have been true.
} else {
puts ("CROP IT");
}