我如何让我的代码说“你不能分为0”
所以,我正在练习函数循环等,我坚持这样做。我很初学编程,但我搜索了很多,这让我学习真正快点。 (通过我试过我的代码,以检查是否从用户输入的是数字还是没有办法的办法。)我如何让我的代码说“你不能分为0”
printf("Define numbers.\n");
printf("Select: ");
scanf("%d", &x);
printf("Select: ");
scanf("%d", &y);
if (y = temp)
{
printf("Division of something by 0 is undefined.\n");
}
else
{
printf("Division of %d and %d is %d\n", x, y, div(x, y));
}
所以我宣布临时= 0我认为它会做的伎俩,但它没有。
当你做y = temp
你给Ÿ温度的值,在这种情况下,0在C其转化为false
逻辑值
你想要做什么是
if (y == temp)
==
运算符测试两个变量之间的相等性
0转换为'false',而不是'true',这就是为什么当temp为0时它不会进入if语句。 –
已更正,谢谢 –
'temp'在此不必要,amd可能是OP的一部分解决问题。值得注意的是,如果习惯性地使用文字零并将其置于左侧,编译器可以捕获错误:即if(0 == y)',因为if(y = 0)'将编译但很少正确,而'if(0 = y)'将无法编译。 – Clifford
你确定你不是指'if(y == temp)'? ('=='而不是'=') –
'='是赋值,而不是'=='这是比较。你说'temp = 0',所以你真正在做的是'if(y = temp)' - >'if(y = 0)' - >'if(0 = 0)' - >'if (0)'这是错误的,所以'else'分支执行。虽然魔术数字通常是皱眉,但这种情况是个例外。如果这是你唯一使用的temp,那么在做'int temp = 0;'和'if(y == temp)'时不会获得任何结果。也可能只是做'if(y == 0)'。 – yano