C# AufgabeArray?


04.08.2020, 14:17

Hier der Quellcode zu meiner Lösung:

using System;
using System.Runtime.InteropServices;
namespace Aufgabe9
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Geben Sie eine Zahl ein, bei der nach dem Schema Zahl*Zahl ein Array erstellet werden soll:");
            string eingabe = Console.ReadLine();
            int intEingabe = Convert.ToInt32(eingabe);
            Console.WriteLine("\n");
            int[,] eingabeArray = new int[intEingabe, intEingabe];
            int eingabeArrayLänge = intEingabe * intEingabe;
            int spalte = 0;
            int summeDurchläufe = 0;
            eingabeArray[0, 0] = intEingabe * intEingabe;
            for(int j=0; j<intEingabe; j++)
            {
                for (int i = 0; i < intEingabe; i++)
                {
                    eingabeArray[i, j] = eingabeArrayLänge - summeDurchläufe;
                    if (i >= 0)
                    {
                        summeDurchläufe = summeDurchläufe + 1;
                    }
                }
            }
            
            Console.WriteLine(eingabeArray[0, 0] + "\n"+ eingabeArray[1, 0] + "\n" + eingabeArray[2, 0]+"\n");
            Console.WriteLine(eingabeArray[0, 1]+"\n"+ eingabeArray[1, 1]+"\n"+ eingabeArray[2, 1] + "\n");
            Console.WriteLine(eingabeArray[0, 2] + "\n" + eingabeArray[1, 2] + "\n" + eingabeArray[2, 2]);
        }
    }
}

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Hallo, du musst auch deine Ausgabe dynamisch anpassen.

using System;
using System.Runtime.InteropServices;

namespace Aufgabe9
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Geben Sie eine Zahl ein, bei der nach dem Schema Zahl*Zahl ein Array erstellet werden soll:");
            string eingabe = Console.ReadLine();
            int intEingabe = Convert.ToInt32(eingabe);
            Console.WriteLine("\n");
            int[,] eingabeArray = new int[intEingabe, intEingabe];
            int eingabeArrayLänge = intEingabe * intEingabe;
            int spalte = 0;
            int summeDurchläufe = 0;
            eingabeArray[0, 0] = intEingabe * intEingabe;
            for (int j = 0; j < intEingabe; j++)
            {
                for (int i = 0; i < intEingabe; i++)
                {
                    eingabeArray[i, j] = eingabeArrayLänge - summeDurchläufe;
                    if (i >= 0)
                    {
                        summeDurchläufe = summeDurchläufe + 1;
                    }
                }
            }

            Console.WriteLine();

            for (int j = 0; j < intEingabe; j++)
            {
                for(int i = 0; i < intEingabe; i++)
                {
                    Console.Write(eingabeArray[i, j] + " ");
                }
                Console.WriteLine();
            }

            Console.Read();
        }
    }
}

LiLGemmeck 
Beitragsersteller
 04.08.2020, 21:32

Hallo, danke für die Lösung!

Wie ist das zu verstehen - dynamisch anpassen ?

Wieso genau kommt da was anderes raus, als wenn man die einzeln ausgibt (so wie ich es gemacht habe)? Im Grunde müssen doch zum Zeitpunkt der Ausgabe schon alle Elemente feststehen - wieso verändert die Form der Ausgabe denn die Werte??

0
DevFGE  05.08.2020, 07:02
@LiLGemmeck

Hallo, du hattest immer eine angepasste Ausgabe von 3x3 Elementen, deswegen dachtest du, du hättest was falsch gemacht. Du musst natürlich dynamisch sein, egal ob 1x1, 2x2 oder 100x100 Elemente.
Deswegen die beiden for-Schleifen, die durch dein "intEingabe" durchlaufen.

0
DevFGE  05.08.2020, 07:02
@LiLGemmeck

Wenn dir die Antwort übringens geholfen hat, bitte ich dich um ein "Danke" /& "Hilfreich" und die "Hilfreichste Antwort" :-D

0