请问对于图片中的这个报错,应该怎么修改我的代码呢?
是条件表达式用错了吗?
源代码如下
#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 生成】
根据给出的问题,可以看到以下几个错误:
break
关键字的使用错误;下面是针对上面每个问题的具体解决方案:
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;
}
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;
}
请确认以上修改是否符合你的需求。
【相关推荐】