gpt4 book ai didi

c - c 中的 ')' 标记之前应为 '!'

转载 作者:行者123 更新时间:2023-11-30 21:17:21 24 4
gpt4 key购买 nike

#include <stdio.h>
int main()
{
int i,l,n;
int w[1000];
int h[1000];
scanf ("%d",&l);
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d %d",&w[i],&h[i]);
}
for(i=0;i<n;i++)
{
if((w[i]<l)!!(h[i]<l))
printf("UPLOAD ANOTHER\n");
else(w[i]>=l&&h[i]>=l)
{
if(w[i]==h[i])
printf("ACCEPTED\n");
else
printf ("CROP IT\n");
}
}
return 0;
}

由于我是新手,这些代码行显示错误:-

In function 'main':
18:20: error: expected ')' before '!' token
21:11: error: expected ';' before '{' token

最佳答案

在第一个 IF 语句中,您使用的是 !!作为 OR,但您应该使用 ||。

编译器无法知道您要做什么,但他们可以根据迄今为止所阅读的内容告诉您他们期望什么。因为您使用了 !!,它是 NOT 符号(两次),所以编译器只知道您的表达式在语法上不正确。在这种情况下,这意味着给定这个意外的一元 NOT 运算符,当前表达式应该用 ')' 符号结束。

编译器不是读心术的人,所以他们无法知道你的意思是 || (逻辑或)。一些编译器过去常常尝试猜测(甚至修复)此类拼写错误,但它们只会让事情变得更糟。我想到了 PL/1,它会尝试修复编译器错误,这让人们发疯。

第 21 行的第二个错误是因为您在“else”后面放置了一个表达式,这对于期望此时执行语句的编译器来说毫无意义。您可以通过将“else”替换为“else if”来解决此问题。这是有效的,因为 IF 是一个语句,而该语句接下来需要一个表达式。我认为这就是您的意图:

#include <stdio.h>
int main()
{
int i,l,n;
int w[1000];
int h[1000];

scanf ("%d",&l);
scanf("%d",&n);

for(i=0;i<n;i++)
{
scanf("%d %d",&w[i],&h[i]);
}

for(i=0;i<n;i++)
{
if((w[i]<l)||(h[i]<l))
printf("UPLOAD ANOTHER\n");
else if (w[i]>=l&&h[i]>=l)
{
if(w[i]==h[i])
printf("ACCEPTED\n");
else
printf ("CROP IT\n");
}
}
return 0;
}

一旦你获得了更多的 C 经验,你就会很容易地识别出这种错误,一个简单的拼写错误就会让编译器感到困惑。祝你好运!

关于c - c 中的 ')' 标记之前应为 '!',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44228451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com