2014-09-10 103 views
0

我開始學習C#,並且正在編寫一個程序,它將首先要求用戶輸入一個數字列表。當用戶輸入輸入時,我想要將用戶在輸入中提供的每個數字平方。用戶輸入的一個例子是2 3 5如何乘數組中的所有元素?

下面是代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace Program 
{ 
    class Third 
    { 
     public static void Main() 
     { 
      Console.WriteLine("Enter how much numbers"); 

      int howMuch = int.Parse(Console.ReadLine()); 
      int[] num = new int[howMuch]; 
      int sum = 0; 

      for (int i = 0; i < num.Length; i++) 
      { 
       sum = num[i] * num[i]; // this is what i did but it does not work? 
      } 

      Console.WriteLine(sum); 
      Console.ReadLine(); 
     } 
    } 
} 

具體而言,首先,我想用戶輸入要在numbers陣列中捕獲。然後我想在創建的num數組中排列每個數字。我的程序有什麼問題?

+0

try ** sum + = num [i] * num [i] ** – jbutler483 2014-09-10 12:05:16

+0

請提供程序的輸出以及所需的輸出(如果可能的話)。 – 2014-09-10 12:05:24

+2

你不在數組中的任何值。你只需要創建一個Length = howMuch的數組,但你也必須填充它的值 – Mark 2014-09-10 12:05:32

回答

0

這可能是一個更好一點,但仍然有相當多的整理工作做的!

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace Program 
{ 
class Third 
{ 

    public static void Main() 
    { 

     Console.WriteLine("Enter how many numbers"); 

     int howMuch = int.Parse(Console.ReadLine()); 

     int[] num = new int[howMuch]; 

     int sum = 1; 
     for(int i=0;i<num.Length;i++) //allows you to fill the array 
     { 
      Console.WriteLine("Please enter an integer"); 
      sum *= int.Parse(Console.ReadLine()); // this will now multiply the value to sum, as your comment suggests 
     } 

     Console.WriteLine(sum); 

     Console.ReadLine(); 

    } 

} 
} 

編輯

sum *= num[i]; 

應該做你想要的!

1

首先,你需要從用戶那裏獲取輸入,並填補了數組:

for (int i = 0; i < num.Length; i++) 
{ 
    //TODO: Look into int.TryParse method to validate user input 
    num[i] = int.Parse(Console.ReadLine()); 
} 

,而不是在你的第二個循環覆蓋sum使用sum += num[i] * num[i]和。或者,如果您正在尋找所有數字的乘法,只需使用sum = sum * num[i];並從1開始總計。

+0

從OP的描述來看,他們希望把每個數字放在一起(或者說我讀的方式,即階乘) – Sayse 2014-09-10 12:09:55

+0

@Sayse是的,那部分對我來說也不清楚。我也添加了這個選項。 – 2014-09-10 12:11:34

+0

我不知道它是因爲OP創建了一個數組嗎?但完全同意,目前還不清楚OP的意圖是什麼 – jbutler483 2014-09-10 12:28:03

-1

這種替代在main()的代碼: -

Console.WriteLine("Enter how much numbers"); 

    int howMuch = int.Parse(Console.ReadLine()); 

    int[] num = new int[howMuch]; 

    Console.WriteLine("Enter numbers"); 

    int sum = 0; 

    for (int i = 0; i < num.Length; i++) 
    { 
     num[i] = int.Parse(Console.ReadLine()); 
     sum += num[i] * num[i]; // this is what i did but it does not work? 
    } 

    Console.WriteLine(sum); 

    Console.ReadLine(); 
0

看看您在循環做數學。

sum = num[i] * num[i]; 

每次經過,你設置相加等於索引整數的平方。第一次通過循環,你將設置sum = 2 * 2(或者4),第二次通過,你將設置sum = 3 * 3(或者是3),或者你可以設置sum = 2 * 3 9),最後一次是sum = 5 * 5(或25)。你真正想要的是2 * 3 * 5,對吧?

所有你需要做的是初始化int sum = 1,並更改該語句在你的循環是:

sum = sum * num[i]; 

這將產生總和= 1 * 2第一次通過,總和= 2 * 3第二次通過,總和= 4 * 5第三次通過。

1

您的代碼不初始化數組 - 我加

Console.WriteLine("Enter number " + (i + 1)); 
     num[i] = int.Parse(Console.ReadLine()); 

了點。

還糾正了概要:sum += ...

for (int i = 0; i < num.Length; i++) 
{ 
    Console.WriteLine("Enter number " + (i + 1)); 
    num[i] = int.Parse(Console.ReadLine()); 
    sum += (num[i] * num[i]); 
} 
0

我假設你想要的和做的(如果輸入2,3,5)是2 * 3 * 5。如果是這種情況,那麼命名變量sum有點誤導,因爲這往往意味着2 + 3 + 5。

for循環,你乘的人數有行

sum = num[i]*num[i]; 

其中,與例如以下,當我== 0,會做sum = 2*2,然後覆蓋它,你遞增循環,所以sum將以25(5 * 5)結束,並折扣所有其他值。

如果你確實想求和數的平方,初始化sum爲0,然後用線

sum += num[i] * num[i]; 

會工作。話雖如此,除非您明確需要將其存儲爲任何原因,否則在讀取數據時處理這些值會更好,因爲程序將少一個for循環。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace Program 
{ 
class Third 
{ 

public static void Main() 
{ 

    Console.WriteLine("Enter how much numbers"); 

    int howMuch = int.Parse(Console.ReadLine()); 

    int[] num = new int[howMuch]; 
    for(int i = 0; i < howMuch; ++i) 
    { 
     //This is assuming that the user will enter an int value. 
     //Ideally, verify this using int.TryParse or something similar. 
     num[i] = int.Parse(Console.ReadLine()); 
    } 

    int sum = 1; //Set to 1 so that the PRODUCT is not always zero 

    for (int i = 0; i < num.Length; i++) 
    { 
     sum *= num[i]; //Multiply the value 
    } 

    Console.WriteLine(sum); 

    Console.ReadLine(); 

} 

} 

如果輸入的是2,3,5,在總和值將是30

相關問題