Roy希望在Facebook上更改自己的个人资料照片。现在Facebook对我们可以上传的图片尺寸有一些限制。 图片的最小尺寸可以是L x L,其中L是正方形边的长度。
现在罗伊有N张不同尺寸的照片。 照片的尺寸表示为W×H 其中W - 照片的宽度和H - 照片的高度
在上传任何照片后,可能会发生以下事件:
代码:
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int len; /* len is the length of the side of square */
scanf("%d",&len);
int test;
scanf("%d",&test);
while(test--)
{
int w,h;
/* w - width of the photo and h- Height of the photo */
scanf("%d %d",&w,&h);
if(w==len && h==len)
{
printf("ACCEPTED\n");
}
else if(w>len || w==len && h>len || h==len)
{
printf("CROP IT\n");
}
else
{
printf("UPLOAD ANOTHER\n");/* print */
}
}
return 0;/* success */
}
答案 0 :(得分:0)
else if(w>len || w==len && h>len || h==len)
相当于:
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 )
答案 1 :(得分:0)
如果您的问题是您根本没有看到任何输出,可能是因为它在IDE中运行并且输出窗口正在关闭,然后才能看到它。在getchar()
末尾明智地使用main()
可能就是解决这个问题所需要的,尽管我可能更愿意从命令行运行它。
在任何情况下,由于&&
的优先级高于||
,因此您的第二个条件是有效的:
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");
}
答案 2 :(得分:-1)
它将显示输出,但程序运行速度比您预期的要快。它会在显示输出后立即关闭。它不会等到你读它。
因此,在打印完所有输出(在getch();
语句之前)后,使用conio.h
中声明的return
按键作为输入。它将使程序等待用户退出前按一下键。
答案 3 :(得分:-1)