我需要一个程序的帮助。 我需要编写一个程序,在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
我想出了如何检查它,但我想不出如何制作另一部分。我觉得我的循环也有问题。你能给我一些提示吗?我错了,我能做些什么?谢谢!
答案 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 + " "); }
}