Array Werte auslesen C

Hier landen Posts, die keine Wissensfrage erhalten, sondern einen Dummen suchen.
Antworten
lot96
Beiträge: 3
Registriert: Mo Feb 15, 2016 9:31 am

Array Werte auslesen C

Beitrag von lot96 » Mo Feb 15, 2016 10:31 am

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. :)

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Array Werte auslesen C

Beitrag von nufan » Mo Feb 15, 2016 11:05 am

Lies dir bitte mal folgende Seite durch:
https://www.proggen.org/doku.php?id=faq ... ormulieren

lot96
Beiträge: 3
Registriert: Mo Feb 15, 2016 9:31 am

Re: Array Werte auslesen C

Beitrag von lot96 » Mo Feb 15, 2016 12:09 pm

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

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Array Werte auslesen C

Beitrag von Xin » Mo Feb 15, 2016 2:33 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

lot96
Beiträge: 3
Registriert: Mo Feb 15, 2016 9:31 am

Re: Array Werte auslesen C

Beitrag von lot96 » Mo Feb 15, 2016 2:45 pm

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.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Array Werte auslesen C

Beitrag von Xin » Mo Feb 15, 2016 3:40 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten