Forum: Mikrocontroller und Digitale Elektronik Matrix in C erstellen


von Taw U. (tawo20)


Lesenswert?

Moin
Bin neu in Programmieren.
Ich habe mir vorhin eine Matrix mit "0" erstellt in C.
Jetzt hatte ich den Gedanken statt der 0 ein Zeichen zu setzen z.B. ein 
"+".

Irgendwie hab ich das nicht hinbekommen und bitte deshalb um 
Unterstützung !

Hier mein Code für eine Matrix die mit "0" gefüllt ist(der klappt auch):

#include <stdio.h>
int main() {
char i;
char j;
char z=4;
char matrix [4][4]={0};

    for (i=0;i<z;i++){
        printf("\n");
    for (j=0;j<z;j++){
        printf("%i",matrix[i][j]);
}
}
    return 0; {
}
}


Und hier mein Ansatz für die Matrix mit +

#include <stdio.h>
int main() {
char i;
char j;
char z=4;
char matrix [4][4]={"+"};

 for (i="+";i<z;i++){
    printf("\n");
 for (j="+";j<z;j++){
    printf("%c",matrix[i][j]);
}
}
return 0; {
}
}

von Wolfgang (Gast)


Lesenswert?

Taw U. schrieb:
> Irgendwie hab ich das nicht hinbekommen

Und wie äußert sich das?

Bist du sicher, dass dein Füllversuch mit 0 geklappt hat und du nicht 
nur die Initialisierung durch den Compiler gesehen hast?
Probiers mal mit 1 ;-)

von febri (Gast)


Lesenswert?

Wichtige Regeln - erst lesen, dann posten!

    Groß- und Kleinschreibung verwenden
    Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

    [ c]C-Code[ /c]

von nur bei char (Gast)


Lesenswert?

1
   memset (mat, '+', 16);

von Stefan F. (Gast)


Lesenswert?

Das funktioniert mit der 0 nur zufällig, du gibt dabei nämlich nur ein 
char vor, aber die Matrix umfasst 16 chars.

"+" ist eine Zeichenkette bestehend aus zwei chars, nämlich '+' und 
'\0'. Achte auf einfache versus doppelte Anführungsstriche!

So geht es:
1
#include <stdio.h>
2
int main() 
3
{
4
    char i;
5
    char j;
6
    char z=4;
7
    char matrix [4][4]={{'+','+','+','+'},{'+','+','+','+'},{'+','+','+','+'},{'+','+','+','+'}};
8
9
    for (i=0;i<z;i++)
10
    {
11
        printf("\n");
12
        for (j=0;j<z;j++)
13
        {
14
            printf("%c",matrix[i][j]);
15
        }
16
    }
17
    return 0; 
18
}

von Nop (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> "+" ist eine Zeichenkette bestehend aus zwei chars

Genauer gesagt deren Adresse.

von mh (Gast)


Lesenswert?

Nop schrieb:
> Stefan ⛄ F. schrieb:
>
>> "+" ist eine Zeichenkette bestehend aus zwei chars
>
> Genauer gesagt deren Adresse.

Nein!

von (prx) A. K. (prx)


Lesenswert?

Beides, je nach Kontext.

von mh (Gast)


Lesenswert?

(prx) A. K. schrieb:
> Beides, je nach Kontext.

Je nach Kontext wird es in einen Pointer konvertiert, der auf das erste 
Element zeigt. Das hier ist einer der Fälle wo nicht konvertiert wird. 
Wenn man schon

Nop schrieb:
> Genauer gesagt

schreibt, sollte man es auch richtig sagen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.