gpt4 book ai didi

c - 为什么我根据代码在纸上计算的结果是错误的?

转载 作者:行者123 更新时间:2023-11-30 19:11:14 27 4
gpt4 key购买 nike

我为一个类(class)项目编写了这段代码:

#include<stdio.h>
int main()
{
int n = 0, i = 1, c = 0, d = 0, a = 0, b = 0, j = 1;
scanf("%d", &n);
while (i <= n)
{
b = a;
scanf("%d", &a);
if (a >= b)
{
i++;
}
if (a == b)
{
j++;
}
if (a < b)
{
i++;
break;
}
}
while ((i <= n) && (i != j + 2))
{
b = a;
scanf("\n%d", &a);
if (a < b)
{
i++;
}
if (a > b || a == b)
{
i++;
c = 1;
break;
}
}
if (c == 1)
{
while (i <= n)
{
scanf("\n%d", &a);
i++;
}
printf("No");
}
while (i <= n)
{
b = a;
scanf("\n%d", &a);
if (a <= b)
{
i++;
}
if (a > b);
{
i++;
break;
}
}
while (i <= n)
{
b = a;
scanf("\n%d", &a);
if (a > b)
{
i++;
}
if (a < b || a == b)
{
i++;
d = 1;
break;
}
}
if (d == 1)
{
while (i <= n)
{
scanf("\n%d", &a);
i++;
}
printf("No");
}
if (c != 1 && d != 1)
{
printf("Yes");
}
}

我期望这笔收入的输出:64 4 3 2 3 2

说“不”。但相反,它是"is"。我在纸上完成了代码中的所有步骤,我自己得到的答案是正确的。但当我运行该程序时,情况并非如此。有人可以解释一下为什么吗?

最佳答案

这里的代码有一个错误,分号正在结束指令

while (i <= n)
{
b = a;
scanf("\n%d", &a);
if (a <= b)
{
i++;
}
if (a > b); // remove this semicolon
{
i++;
break;
}
}

编辑:为了清楚起见,结束“if”指令,它就像一个空的“if”,例如:

if ( a > b ) { }

所以

i++;
break;

作为下一条指令执行

关于c - 为什么我根据代码在纸上计算的结果是错误的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40431528/

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