2017-04-24 4 views
-3

Probleme beim Hinzufügen einer Zusammenfassung für die Spalten Nummer, Quadrat und Würfel für die Summen. Irgendwelche Hinweise wo ich hinschauen sollte? Unten ist eine Kopie meines Codes.Problemlösung Summen

static void Main(string[] args) 
     { 
      int number; 
      int total = 0; 
      Console.WriteLine("number\t" + "square\t" + "cube"); 
      Console.WriteLine("-----------------------------"); 

      for (int i = 0; i <= 20; i += 2) 
      { 
       number = i; 
       int k = 0; 
       do 
       { 
        Console.Write(number + "\t"); 
        number *= i; 
        total += number; 
        k++; 

       } while (k < 3); 

       Console.WriteLine("Total is",total); 
       Console.WriteLine(); 
      } 

      Console.WriteLine("---------------------------------------"); 

Antwort

0

Es gibt zwei Fehler im Code:

Erste ist etwa Console.WriteLine. Um es Ihnen Arbeitsparameter wie zum Beispiel passieren sollte hier gezeigt (es ist nicht der einzige Weg, es zu tun, aber es ist die einfachste)

Console.WriteLine("Total is" + total); 

Secon man mehr über Algorithmus ist. Lassen Sie uns prüfen, wann Sie eine Zahl zu insgesamt hinzufügen. Wenn Sie genauer hinsehen, können Sie sehen, dass Sie nicht die gleiche Nummer hinzufügen, die Sie angezeigt haben, sondern Ihre addierende Nummer * i! Das ist großer Fehler, aber es einfach zu beheben tauschen, dass zwei Zeilen wie folgt aus:

Console.Write(number + "\t"); 
total += number; 
number *= i; 
k++; 

Ich glaube, dass Korrekturen jede Ausgabe, hoffe, es :-)

Voll Code hilft:

using System; 

namespace Sum 
{ 
    public class Program 
    { 
     public static void Main(string[] args) 
     { 
      int number; 
      Console.WriteLine("number\t" + "square\t" + "cube"); 
      Console.WriteLine("-----------------------------"); 

      for (int i = 0; i <= 20; i += 2) 
      { 
       number = i; 
       int total = 0; 
       int k = 0; 
       do 
       { 
        Console.Write(number + "\t"); 
        total += number; 
        number *= i; 
        k++; 
       } while (k < 3); 
       Console.WriteLine("Total is "+total); 
       Console.WriteLine(); 
      } 

      Console.WriteLine("---------------------------------------"); 
     } 
    } 
} 
+0

Ich habe versucht, dies aber scheint nicht zu funktionieren. Für jede Spalte haben Sie die Nummer, das Quadrat und den Würfel. Es gibt die korrekten Zahlen und das Ende der Tabelle aus, die es für jeden von ihnen aufsummieren muss. – TOD

+0

Ja, tut mir leid, Mann, ich denke, ich habe nicht das Konzept von dem, was Sie suchen, bekommen :-) –

1

Wenn Ich verstehe, was Sie wollen, eine Möglichkeit, dies zu tun, ist, die laufenden Summen für jede Potenz (1, 2 und 3) in einem Array zu verfolgen und diese Werte am Ende anzuzeigen.

Das Array würde 3 Indizes haben, und jedes Mal, wenn wir die 'Power' erhöhen, auf die wir unsere Zahl erhöhen, fügen wir diesen Wert dem entsprechenden Index im Array hinzu.

Zum Beispiel:

static void Main(string[] args) 
{ 
    // This array will hold three items: 
    // - totals[0] = numberTotal 
    // - totals[1] = squareTotal 
    // - totals[2] = cubeTotal 
    var totals = new int[3]; 

    Console.WriteLine("number\t" + "square\t" + "cube"); 
    Console.WriteLine("-----------------------------"); 

    for (int number = 0; number <= 20; number += 2) 
    { 
     // Grab a copy of 'number' so we don't modify the loop variable 
     var thisNumber = number; 

     for(int powerIndex = 0; powerIndex < 3; powerIndex++) 
     { 
      // Write this number to screen 
      Console.Write($"{0:n0}\t", thisNumber); 

      // Add this number to the current number in 'power' index 
      totals[powerIndex] += thisNumber; 

      // Power up 
      thisNumber *= number; 
     } 

     Console.WriteLine(); 
    } 

    Console.WriteLine("-----------------------------"); 
    Console.WriteLine("{0:n0}\t{1:n0}\t{2:n0}\t", totals[0], totals[1], totals[2]); 

    // Alternatively, if you're using C#6.0, you could write: 
    Console.WriteLine($"{totals[0]:n0}\t{totals[1]:n0}\t{totals[2]:n0}\t"); 

    Console.Write("\nDone!\nPress any key to exit..."); 
    Console.ReadKey(); 
} 

Ausgang:

enter image description here

+0

Danke, das ist, was für die Summe Summen. Das einzige Problem ist, dass der Würfel falsch berechnet wird, da er 0,8,64,216,512 gehen sollte, was insgesamt 24.200 ergibt. Glauben Sie, dass es etwas mit der zweiten Schleife zu tun hat. – TOD

+0

Ah, du hast Recht ... Ich habe beim Einschalten die falsche Variable verwendet! Fixed it oben ... –

+0

Wenn ich Komma für Werte in Tausende setzen wollte, würde das nicht funktionieren unten? Console.Write ("{0,8: n0}", thisNumber + "\ t"); – TOD