找到不等于3或7的数字

时间:2014-02-10 13:57:06

标签: c# loops for-loop

我需要一个程序的帮助。 我需要编写一个程序,在1到N的控制台编号上打印,不能同时划分3或7.我需要解析N,以便用户输入一个值。这是我现在的代码,你能告诉我出了什么问题吗?

Console.Write("Enter a number: ");
            int n = int.Parse(Console.ReadLine());
            for (n = 1; n <= 99999; n++) {
                //n % (3 * 7) == 0

我想出了如何检查它,但我想不出如何制作另一部分。我觉得我的循环也有问题。你能给我一些提示吗?我错了,我能做些什么?谢谢!

3 个答案:

答案 0 :(得分:3)

您从用户那里获得N然后立即覆盖它。为循环使用不同的变量:

int n = int.Parse(Console.ReadLine());
for (int i = 1; i <= n; i++)
   // do stuff

答案 1 :(得分:2)

您可以使用模数%

Console.Write("Enter a number: ");
string input = Console.ReadLine();
int n;
if (int.TryParse(input, out n))
{
     for (int i = 1; i < n; i++)
     {
          if(i % 3 != 0 ||  i% 7!= 0) Console.WriteLine(i);
     }
}

你的循环是错误的,因为你的情况是错误的。它应该是i < n,你得到了一个输入,但是你被n = 1;

覆盖了它的值

答案 2 :(得分:0)

    Console.Write("Enter a number: ");
    int n = int.Parse(Console.ReadLine());
    for (int i = 1; i <= n; i++)
    {
        if (i % 21 != 0) { Console.Write(i + " "); }
    }

示例:http://ideone.com/ThASen