对于这种报错 应该怎么修改我的代码

请问对于图片中的这个报错,应该怎么修改我的代码呢?
是条件表达式用错了吗?

img

源代码如下

#include <stdio.h>
int main()
{
    int ran,N,i,x;
    scanf("%d %d",&ran,&N);
    for(i=1;i<=N;i++){
        scanf("%d",&x);
        if(i<=N){
            if(x>ran){
                printf("Too big");
            }
            else if(x<ran){
                printf("Too small");
            }
        }
        if(x==ran){
            i==1 ? printf("Bingo!") : break;
            i==2||i==3 ? printf("Lucky You!") : break;
            i>3&&i<=N ? printf("Good Guess!") : break;
            i>N||x<0 ? printf("Game Over") : break;
        }
    }
    return 0;
} 

这么改,供参考:

#include <stdio.h>
int main()
{
    int ran, N, i, x;
    scanf("%d %d", &ran, &N);
    for (i = 1; i <= N; i++) {
        scanf("%d", &x);
        if (i <= N) {
            if (x > ran) {
                printf("Too big\n"); // 修改
            }
            else if (x < ran) {
                printf("Too small\n"); // 修改
            }
        }
        if (x == ran) {
            i == 1 ? printf("Bingo!") :                   // 修改
            i == 2 || i == 3 ? printf("Lucky You!") :     // 修改
            i > 3 && i <= N ? printf("Good Guess!") : NULL; 
            break;
            //i == 2 || i == 3 ? printf("Lucky You!") :  break; // 修改
            //i > 3 && i <= N ? printf("Good Guess!") :  break;
            //i > N || x < 0 ? printf("Game Over") :     break;
        }
    }
    i > N ? printf("Game Over") : NULL;    // 修改
    return 0;
}

if (i == 1) { printf("Bingo!"); break; }
别的类似

#include <stdio.h>

int main() {
    int ran, N, i, x;
    scanf("%d %d", &ran, &N);

    for (i = 1; i <= N; i++) {
        scanf("%d", &x);
        if (x > ran) {
            printf("Too big");
        } else if (x < ran) {
            printf("Too small");
        } else {
            if (i == 1) {
                printf("Bingo!\n");
            } else if (i == 2 || i == 3) {
                printf("Lucky You!\n");
            } else if (i > 3 && i <= N) {
                printf("Good Guess!\n");
            } else {
                printf("Game Over");
            }
            break;
        }
    }

    return 0;
}

【以下回答由 GPT 生成】

根据给出的问题,可以看到以下几个错误:

  1. 条件表达式使用错误;
  2. break 关键字的使用错误;

下面是针对上面每个问题的具体解决方案:

  1. 条件表达式使用错误:在 if 语句的条件表达式中,应该使用 == 来进行相等性的判断。下面是修改后的代码:
if (x == ran) {
    if (i == 1) {
        printf("Bingo!");
    } else if (i == 2 || i == 3) {
        printf("Lucky You!");
    } else if (i > 3 && i <= N) {
        printf("Good Guess!");
    } else if (i > N || x < 0) {
        printf("Game Over");
    }
    break;
}
  1. break 关键字的使用错误:break 关键字是用于跳出循环的,不能单独使用在条件语句中。因此,需要将 break 放在外层的循环中。

下面是对以上两个问题的修复后的完整代码:

#include <stdio.h>

int main()
{
    int ran, N, i, x;
    scanf("%d %d", &ran, &N);
    for(i = 1; i <= N; i++){
        scanf("%d", &x);
        if (x == ran) {
            if (i == 1) {
                printf("Bingo!");
            } else if (i == 2 || i == 3) {
                printf("Lucky You!");
            } else if (i > 3 && i <= N) {
                printf("Good Guess!");
            } else if (i > N || x < 0) {
                printf("Game Over");
            }
            break;
        }
        if (x > ran) {
            printf("Too big");
        } else if (x < ran) {
            printf("Too small");
        }
    }
    return 0;
}

请确认以上修改是否符合你的需求。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^