Seite 1 von 1

Array Werte auslesen C

Verfasst: Mo Feb 15, 2016 10:31 am
von lot96
Hallo,
ich möchte gerne eine Funktion Namens CheckArray erstellen diese sollte folgendes können:

TEsten ob noch freie Felder vorhanden Sind (Wert 0 =leer)

TEsten ob der Wert 1 oder 2, 3mal in einer Reihe Vorkommt
wenn 1 drei in einer Reihe hat dann ist der Rückgabewert 1
wenn 2 drei in einer Reihe hat dann ist der Rückgabewert 2
wenn keiner der Werte drei in einer Reihe hat aber auch kein Feld mehr leer(0) ist dann ist der Rückgabewert 3

Das Array hat eine Größe von [3][3]

Hoffe das ihr mir da Weiterhelfen könnt wie ich das umsetzen kann. :)

Re: Array Werte auslesen C

Verfasst: Mo Feb 15, 2016 11:05 am
von nufan
Lies dir bitte mal folgende Seite durch:
https://www.proggen.org/doku.php?id=faq ... ormulieren

Re: Array Werte auslesen C

Verfasst: Mo Feb 15, 2016 12:09 pm
von lot96
Hier der Code zu der Aufgabe geht bei meiner Frage um die Funktion CheckBrett

Code: Alles auswählen

#include  <stdio.h>
#include <stdlib.h>




int Brett[3][3];
enum {leer , SP1 , SP2} arraywert;
int x,y,r;
int main(void)
{


    int Zahl,Reihe,Spalte;


    do{
        printf("Geben sie eine Zahl zwischen 1 und 4 ein\n");
        scanf("%d",&Zahl);



        if(Zahl<1)
            printf("!Unbekannte Zahl! ->  Bitte geben sie eine Zahl zwischen 1 und 4 ein\n");


        if(Zahl>4)
            printf("!Unbekannte Zahl! ->  Bitte geben sie eine Zahl zwischen 1 und 4 ein\n");

    }while(Zahl <1 || Zahl >4);


    if(Zahl==4)
    {
        printf("Programm wird beendet");
        exit( 0 );
    }
    if(Zahl==1)
    {
        enum {leer , SP1 , SP2};
        int Brett[3][3];

        Brett[0][0] = leer;
        Brett[0][1] = leer;
        Brett[0][2] = leer;
        Brett[1][0] = leer;
        Brett[1][1] = leer;
        Brett[1][2] = leer;
        Brett[2][0] = leer;
        Brett[2][1] = leer;
        Brett[2][2] = leer;

        printf("Reihe des Wertes\n");
        scanf("%d",&Reihe);

        printf("Spalte des Wertes\n");
        scanf("%d",&Spalte);





        Brett[Reihe][Spalte] = SP1;

        printf("Zeile 0 \t %d \t %d \t %d \n",Brett[0][0],Brett[0][1],Brett[0][2]);
        printf("Zeile 1 \t %d \t %d \t %d \n",Brett[1][0],Brett[1][1],Brett[1][2]);
        printf("Zeile 2 \t %d \t %d \t %d \n",Brett[2][0],Brett[2][1],Brett[2][2]);

    }
    if(Zahl==2)
    {
        for( x=0;x<3;x++)
        {
            for( y=0;y<3;y++)
            {

                //Brett[x][y] =rand()% 3 + 0;
                Brett[x][y] =leer;
            }
            printf("Zeile %d \t %d \t %d \t %d \n",x,Brett[x][0],Brett[x][1],Brett[x][2]);

        }
    }


        void Computerset(int *Brett1,int brett_groesse)
        {
            int** leerfeld =  (int**) malloc(brett_groesse);
            int leerfeldzaehler = 0;
            int i = 0;

            for(;i<brett_groesse;i++)
            {
                if(Brett1 == leer)
                {
                    leerfeld[leerfeldzaehler] = &Brett1[i];
                }
            }
            if(leerfeldzaehler>0)
            {
                leerfeld[(rand()%leerfeldzaehler)] = SP2;
            }
            free(leerfeld);
        }

        if (Zahl==3)
        {
            Computerset(Brett,9);
            printf("Zeile 1 \t %d \t %d \t %d \n",Brett[0][0],Brett[0][1],Brett[0][2]);
            printf("Zeile 2 \t %d \t %d \t %d \n",Brett[1][0],Brett[1][1],Brett[1][2]);
            printf("Zeile 3 \t %d \t %d \t %d \n",Brett[2][0],Brett[2][1],Brett[2][2]);


        }

        int CheckBrett(int r,int i=0);

        
           if(leerfeldzaehler=leer)

           {
               r=0;
           }
           if(Brett[0][0]+ Brett[0][1]+Brett[0][2]== 3)
           {
               r=1;
           }
           if()
           {
               r=2;
           }

                    return()r;
        }
}
Aufgabenblätter:
http://www.bilder-upload.eu/show.php?fi ... 526019.jpg
http://www.bilder-upload.eu/show.php?fi ... 109458.jpg

Re: Array Werte auslesen C

Verfasst: Mo Feb 15, 2016 2:33 pm
von Xin
lot96 hat geschrieben:Hier der Code zu der Aufgabe geht bei meiner Frage um die Funktion CheckBrett
WICHTIG!

Rücke die Sachen bitte anständig ein. Du fängst immer links an und rückst pro "{" 2 oedr 4 Leerzeichen nach rechts ein und bei jeder "}" wieder entsprechend zurück. So wie das Hello World auf Deinem Aufgabenzettel.

Code: Alles auswählen

        enum {leer , SP1 , SP2};
        int Brett[3][3];
Du definierst diese Sachen mehrfach... das geht... sollte man aber vermeiden.

Code: Alles auswählen

        void Computerset(int *Brett1,int brett_groesse)
        {
...
        }
Funktionen kann man nicht innerhalb von Funktionen definieren.

Code: Alles auswählen

        int CheckBrett(int r,int i=0);

        
           if(leerfeldzaehler=leer)

           {
               r=0;
           }
Joah... hier müsste ich erstmal fragen, was hier passieren soll!?

Code: Alles auswählen

           if(Brett[0][0]+ Brett[0][1]+Brett[0][2]== 3)
           {
               r=1;
           }
           if()
           {
               r=2;
           }
Hier wüsste ich acuh nicht, was gemeint ist.

Code: Alles auswählen

                    return()r;
Ich weiß nicht, ob Du schon von selbst hier gepostet hast, oder ob nufan Dein Post in 'Wer macht meine Hausaufgaben' verschoben hat.
Wir können dabei helfen C zu lernen und zu verstehen, aber Hausaufgaben machen wir keine. Und hier muss ich Dich bitten, Dir erstmal die Mühe zu machen, Dir Grundlagen von C anzueignen, zum Beispiel durch den C-Kurs, damit wir eine Grundlage haben, auf der wir Fragen beantworten können.

Re: Array Werte auslesen C

Verfasst: Mo Feb 15, 2016 2:45 pm
von lot96
Ich möchte auch nicht einfach eine Lösung möchte Tipps wie ich dann angehen kann , möchte es ja auch verstehen.
Ein C Tutorial gehe ich momentan nochmal durch.

Re: Array Werte auslesen C

Verfasst: Mo Feb 15, 2016 3:40 pm
von Xin
lot96 hat geschrieben:Ich möchte auch nicht einfach eine Lösung möchte Tipps wie ich dann angehen kann , möchte es ja auch verstehen.
Ein C Tutorial gehe ich momentan nochmal durch.
Richtige Einstellung.
Bevor wir Dir Fragen beantworten, musst Du Dich in die Lage versetzen, auch Fragen stellen zu können.
Sofern Du das Tutorial von proggen.org durchgehst, kann ich abschätzen, was Du danach kannst, bzw. worauf man bei Verständnisfragen aufbauen kann.