2014-02-10 45 views
0

嗨我创建了这段代码,但现在我卡住了。 如何添加除了可被5整除的N1和N2之间的所有数字? 并显示结果?随机数加法问题

问题:我的if声明如果y可以被5整除不添加,只添加不能被5整除的数字。我不知道该怎么做。

新代码如何呢?

     Console.Write("Enter N1 : "); 
         int N1 = int.Parse(Console.ReadLine()); 
         Console.Write("Enter N2: "); 
         int N2 = int.Parse(Console.ReadLine()); 
         int counter = 1; 
         while() 
         { 
          Console.Write(""); 
          counter++; 
         } 
+6

什么异常?在哪一行?我们不喜欢猜测... – MarcinJuraszek

+0

@MarcinJuraszek我的if语句如果y可以被5整除不添加只能加上不能被5整除的数字我不知道该怎么做。 – TheBoringGuy

+2

哦,所以它只是* my **除了**条件不工作*,不是*代码抛出异常* ...您应该更加精确。 – MarcinJuraszek

回答

3

如何添加所有的N1和N2之间的数字,以下项目除外5整除?

如果想法是在N1和N2之间添加每个数字,为​​什么使用随机?你的问题很混乱。

Console.WriteLine("N1: "); 
int N1 = Convert.ToInt32(Console.ReadLine()); 
Console.WriteLine("N2: "); 
int N2 = Convert.ToInt32(Console.ReadLine()); 

int sum = 0; 
for (int X = N1; X <= N2; X++) 
{ 
    if (X % 5 != 0) 
    { 
     sum += X; 
    } 
} 
Console.WriteLine("Sum: {0}", sum.ToString()); 
Console.ReadLine(); 
+1

你应该检查这个条件吗? IF(N1> N2) – iJay

+0

@IJ回路条件会为我检查。如果这是真的,'sum'将是默认的'0',因为循环主体根本不会被执行。 – MarcinJuraszek

+2

因此,除了可以被5整除的数字之外,他会在30和20之间添加数字“0”? – iJay

0

循环将只运行五次。它如何添加范围n1和n2中的所有数字?

使用此逻辑:

int sum=0; 
for(int i=N1;i<=N2;i++) 
{ 
    if (!(i%5 == 0)) 
     sum=sum+i; 

} 
console.writeline(sum); 
0

注意:使用的TryParse避免无效输入异常,其余的事情都是为

这里,如果用户为N1小,n2为大于或反之亦然进入输入,两者的处理方式:

 Random rnd = new Random(); 
     Console.WriteLine("N1: "); 
     int N1 = 0; 
     int total = 0; 
     int.TryParse(Console.ReadLine(), out N1); 
     Console.WriteLine("N2: "); 
     int N2 = 0; 
     int.TryParse(Console.ReadLine(), out N2); 
     int x1 = 0, x2 = 0; 
     if (N1 < N2) 
     { 
      x1 = N1; 
      x2 = N2; 
     } 
     else 
     { 
      x1 = N2; 
      x2 = N1; 
     } 
      for (int X = x1; X <= x2; X++) 
      { 
       int y = rnd.Next(N1, N2); 
       if (y % 5 == 0) 
       { 
        Console.WriteLine(""); 
       } 
       else 
       { 
        total = total + y; 
        Console.WriteLine(""); 
       } 
      } 
     Console.ReadLine(); 
0

使用rnd.Next(N1, N2);

返回一个随机整数,它是一个规定的范围内。

试试这个,你不需要else条件。只是检查它是否不能被5整除,并将其添加到totalSum中:

int totalSum = 0; 
for (int x = N1; x <= N2; x++) 
{ 
    int y = rnd.Next(N1, N2); 
    if (y % 5 != 0) 
    { 
     totalSum += y; 
    } 
}