1215787625 发表于 2023-10-27 10:34:06

为什么会错

#include <stdio.h>
#include <math.h>
int main()
{
    // 请在Begin与End之间补齐代码
    /********** Begin *********/
int a,b,c,m;
scanf("%d",&m);
a = m / 100;
c = m % 10;
b = (m - 100*a - c) / 10;
if ("a*b!=c*c&&a==b||a==c||b==c")
printf("Yes!");
else
printf("No!");

   
    /********** End **********/
    return 0;
}

isdkz 发表于 2023-10-27 10:34:15

问题出在if语句的条件判断上。你使用了字符串作为条件判断的表达式,而不是实际的逻辑表达式。正确的写法应该是将条件表达式直接写在if语句中,而不是作为字符串。

你可以将if语句修改为以下形式:

if (a * b != c * c && (a == b || a == c || b == c))
    printf("Yes!");
else
    printf("No!");


这样就可以正确地进行条件判断了。

陶远航 发表于 2023-10-27 10:34:24

代码中的错误在于条件判断语句的部分。

应该将条件判断语句改为:
if (a * b != c * c && (a == b || a == c || b == c))


改正后的完整代码如下:
#include <stdio.h>
#include <math.h>
int main()
{
    int a, b, c, m;
    scanf("%d", &m);
    a = m / 100;
    c = m % 10;
    b = (m - 100 * a - c) / 10;
    if (a * b != c * c && (a == b || a == c || b == c))
      printf("Yes!");
    else
      printf("No!");

    return 0;
}


这样会正确判断条件并输出结果。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
页: [1]
查看完整版本: 为什么会错