我一直困扰着一个问题。我正在尝试编写允许用户输入值的代码,如果两个值相同则应显示“它是一个完美的正方形”的输出,但是如果显示三个值,那么“它是一个完美的立方体”应该显示。到目前为止,我对我所做的事情感到有些困惑,但是当我确实输入输入值时,我会收到正确的答案,或者它会显示我的所有printf输出。我似乎无法理解这种情况,并且可以在理解中使用一些帮助。如何安排它。目前我正在用C语言编写,我是一名初学程序员,我已经包含了迄今为止我所做的屏幕截图,如果有人能告诉我哪里出错了,那将非常有用。
到目前为止我的代码
#include <stdio.h>
int main (void)
{
int Height;
int Width;
int Depth;
printf("Please insert value\n");
scanf("%d%d%d", &Height, &Width, &Depth);
if(Height == Width)
{
printf("It's a square cuboid\n");
}
else if(Height == Depth)
{
printf("It's a square cuboid\n");
}
else if(Width == Depth)
{
printf("It's a square cuboid\n");
}
}
谢谢Hadleigh
答案 0 :(得分:2)
您可以使用&&
和||
运算符链接布尔语句。例如,如果你想检查它是否是一个完美的立方体:
//If Height equals width AND height equals depth
if(Height == Width && Height == Depth)
{
printf("Perfect Cube!");
}
或者,如果你想检查它是否是一个完美的方块:
if(Height == Width && Depth == 0)
{
printf("Perfect Square!");
}
所以要把这些全部放在一起,一旦你验证了你的输入,你只需要弄清楚哪些检查做了什么。
int Height;
int Width;
int Depth;
printf("Please insert value\n");
if(scanf("%d%d%d", &Height, &Width, &Depth) != 3)
{
printf("Wrong number of inputs");
return -1;
}
//this AND this
if(Height == Width && Depth == 0)
{
printf("Perfect Square!");
}// this AND this
else if(Height == Width && Height == Depth)
{
printf("Perfect Cube!");
}// This OR this OR this then...
else if (Height == Width || Height == Depth || Width == Depth)
{
printf("Square-faced cuboid!");
}
答案 1 :(得分:1)
scanf()
返回3,然后依靠变量来获得正确的值。printf()
语句都打印相同的内容,因此无法查看输出是否正常。答案 2 :(得分:0)
感谢您的快速回复,我现在明白它应该如何布局并且完美无缺。我只有一个快速跟进的问题。我如何在每个if语句行中引入乘法,以便将Height * Width * Depth计算在一起以获得音量。我想为每一行做这个。我已经插入了我的代码的副本,只是想真正添加它。
{
int Height;
int Width;
int Depth;
scanf("%d%d%d", &Height, &Width, &Depth );
if(Height == Width && Depth >=0){
printf("It's a square cuboid\nThe volume is %d ");
}
if(Height == Depth && Width >= 0)
printf("It's a square cuboid\n ");
if(Width == Depth && Height >= 0)
printf("It's a square cuboid\n");
if(Height == Width && Height == Depth)
printf("It's a perfect cube\n ");
}
由于 哈德利