好吧,所以在书中我正在阅读它告诉我写一个程序,询问用户两个乘法数字,然后它将打印出结果是正面还是负面。
规则是我不能取两个数字并乘以它们,然后检查结果是否大于或小于零。相反,如果两个数字具有相同的符号(均为正数或均为负数),则结果为正。如果他们有不同的迹象,结果是否定的。
我这样做了(我也添加了anresult = first * second;< - 我需要吗?)因为如果我删除它仍然有效,但是这本书想要它在乘法中。所以我不确定这段代码是否正在做任何事情
Console.WriteLine("Enter First Nuumber: ");
string firstAsString = Console.ReadLine();
int first = Convert.ToInt32(firstAsString);
Console.WriteLine("Enter Second Nuumber: ");
string secondAsString = Console.ReadLine();
int second = Convert.ToInt32(secondAsString);
int anresult = first * second;
if (first >= 0 && second > 0 || first < 0 && second < 0)
Console.WriteLine("Your number will be Positive");
else
Console.WriteLine("Your number will be negative");
Console.ReadLine();
但这本书就是这样做的
Console.WriteLine("Enter First Nuumber: ");
string firstAsString = Console.ReadLine();
int first = Convert.ToInt32(firstAsString);
Console.WriteLine("Enter Second Nuumber: ");
string secondAsString = Console.ReadLine();
int second = Convert.ToInt32(secondAsString);
bool firsNumberPositive;
bool secondNumberPositive;
if (first > 0) {
firsNumberPositive = true;
}
else
{
firsNumberPositive = false;
}
if (second > 0)
{
secondNumberPositive = true;
}
else
{
secondNumberPositive = false;
}
if (firsNumberPositive && secondNumberPositive || !firsNumberPositive && !secondNumberPositive)
Console.WriteLine("Answer Is Positive");
else
if (!firsNumberPositive && secondNumberPositive || firsNumberPositive && !secondNumberPositive)
Console.WriteLine("Answer Is Negative");
Console.ReadLine();
不是我的方式和书籍一样吗?因为这本书显示了
if (first > 0) {
firsNumberPositive = true;
}
使用数字就像我显示正面和负面
继承人,同样的事情?..
if (first >= 0 && second > 0 || first < 0 && second < 0)
Console.WriteLine("Your number will be Positive");
else
Console.WriteLine("Your number will be negative");
答案 0 :(得分:1)
本书中提出的解决方案并未考虑输入为0的条件,因此它的行为与您编写的代码不同。
答案 1 :(得分:0)
您的解决方案输出的结果与书中的结果不同。只需使用first
和second
0进行尝试。您的代码会说结果是否定的,而本书的解决方案会说它是正面的。
在我看来,0既不是正数也不是负数,应该分开处理。所以这是我的解决方案:
if (first == 0 || second == 0) {
Console.WriteLine("The result is 0");
} else if ((first > 0) != (second > 0)) { // here, it might look a little weird but I'm just checking whether the signs are the same.
Console.WriteLine("The result is negative");
} else {
Console.WriteLine("The result is positive");
}