不知道我在这里想念什么吗? C#(代码挑战30天;条件语句简介)

时间:2019-03-27 05:17:43

标签: c#

问题出在这里

给出一个整数,,执行以下条件操作:

如果是奇数,请打印怪异
如果是偶数且在to的范围内,则打印Not Weird
如果是偶数且在to的范围内,则打印Weird
如果大于等于,则打印Not Weird

完成编辑器中提供的存根代码以打印是否奇怪。

输入格式:包含正整数N的一行。

约束:1 <= n <= 100

输出格式 如果数字很奇怪,请打印"Weird";否则,打印"Not Weird"

说明: 示例案例0:n = 3

n是奇数,奇数是奇数,所以我们打印怪异

示例案例1:n = 24 n> 20且n为偶数,因此并不奇怪。因此,我们打印了Not Weird。

我以前做过这样的事情,但是我不确定丢失了什么。

它通过了测试用例0、1、4、5、6,但未通过2、3和7。 测试用例2是4,什么也没发生 测试用例3是18,什么也没发生 测试案例7是20,什么也没发生

Console.WriteLine("Enter:");
int N = Convert.ToInt32(Console.ReadLine());

if (N % 2 == 1)
{
    Console.WriteLine("Weird");
}
else if (N % 2 == 0 && (N <= 2 && N >= 5))
{
    Console.WriteLine("Not Weird");
}
else if (N % 2 == 0 && (N <= 6 && N >= 20))
{
    Console.WriteLine("Weird");
}

else if (N % 2 == 0 && N > 20)
{
    Console.WriteLine("Not Weird");
}

案例2为4 =“不奇怪” 情况3为18 =“怪异” 情况7为20 =“怪异”

2 个答案:

答案 0 :(得分:2)

您的情况是不可能的。例如...

        else if (N % 2 == 0 && (N <= 6 && N >= 20))
        {
            Console.WriteLine("Weird");
        }

将永远不会发生。您正在寻找的数字是<= 6 AND> =20。不确定您的描述,但听起来您可能需要切换顺序-例如:

        else if (N % 2 == 0 && (N >= 6 && N <= 20))
        {
            Console.WriteLine("Weird");
        }

此外,由于您已经确定从第一个if语句起的数字是偶数,因此可以简化一下。

        else if (N >= 6 && N <= 20)
        {
            Console.WriteLine("Weird");
        }

答案 1 :(得分:0)

试试这个:

if(N <= 1|| N >= 100){
        Console.WriteLine("Number can not be less then 1 and bigger then 100");
    }
    else{
        string evenOdd = N % 2 == 0 ? "even" : "odd";
        if(evenOdd == "even"){
            if(N >=2 || N <= 5){
                Console.WriteLine("Not Weird");
            }
            else if(N >= 6 || N <= 20){
                Console.WriteLine("Weird");
            }
            else{
                Console.WriteLine("Not Weird");
            }
            
        } 
        if(evenOdd == "odd"){
            Console.WriteLine("Weird");
        }
    }

首先检查输入的数字(本例为N)是否大于100小于0,然后声明字符串变量,同时用三元运算初始化,检查“是否为偶数”或奇数”(在这里我称她为“evenOdd”)。如果是偶数,则“evenOdd”的值将是偶数,反之亦然。因为任务要求是(如果​​是偶数且 N >= 2 且 N <= 5 打印“Not Weird”,N >= 6 且 N <= 20 打印“Weird”,N >= 20 打印“Not Weird”并且还如果是“even”打印“Not Weird”和“odd”打印“Weird”,首先检查这个“if”里面的“evenOdd”是否是“even”,我做剩下的检查(N >= 2 or N < = 5 打印“Not Weird”等等)之后(evenOdd 是偶数)我再做一次检查(如果 evenOdd 是奇数打印“Weird”)。简而言之:N 如果是 6,将检查第一次检查并返回“false” ”,然后会进入“else”。因为6是“偶”,那么“evenOdd”的值会是“偶”,会进入第一个“if,因为在第一次检查时它大于5,返回false,因为是6,所以会进入下一个check,返回true,打印“Weird”。