Matrix mit zeichen füllen



  • hallo, möchte die matrix, die unten mit fünfen gefüllt wird mit Sternchen ( * ) füllen, was muss ich ändern?

    danke

    int main(int argc, char* argv[])
    {
    int matrix[10][10];
    
    for (int i=0;i<10;i++)
    {
    for (int j=0;j<10;j++)
    {
    matrix[i][j]=5;
    }
    }
    
    for (int i=0;i<10;i++)
    {
    for (int j=0;j<10;j++)
    {
    cout<<matrix[i][j];
    }
    }
            getch();
            return 0;
    }
    


  • matrix[i][j]='*';
    

    edit: du solltest aber auch noch am datentyp feilen, damit es als sternchen angezeigt wird 😉



  • sothis_ schrieb:

    matrix[i][j]='*';
    

    edit: du solltest aber auch noch am datentyp feilen, damit es als sternchen angezeigt wird 😉

    genau das hab ich schon probiert, aber da meckert der compiler,
    dass er nicht char in int wandeln kann.
    ich weiß einfach nicht was ich ändern soll. hab auch schon ne
    "char matrix[][]" gemacht.



  • Ist zwar nichts borland spezifisches, aber du musst das in den Datentyp setzen, den du auch deklarierst.



  • Hi Da_Marcki,

    das Zauberwort heißt Typumwandlung. Schau dir dazu mal die Builder-Hilfe und das Forum durch. 😉

    Es spielt auch eine Rolle was du mit der Matrix machen willst... Zur Bildschirm-Ausgabe könntest du auch gleich eine AnsiString-Matrix[10][10] nehmen (schau dir AnsiString mal in der Hilfe an, das ist n wichtiger "Datentyp" im BCB!) die mit Matrix[i][j]= "*"; direkt mit ASCII-Zeichen gefüllt wird (die sind dann auch auf dem Bildschirm zu sehen).

    Da_Marcki schrieb:

    ... hab auch schon ne
    "char matrix[][]" gemacht.

    Und? Was ist dabei rausgekommen?

    MfG



  • Da du eine Integer Matrix verwendest, sehe ich keinen Sinn eine AnsiString Matrix zu verwenden.
    Vor allem wenn er sich auf der Konsolenebene befindet.
    Hängt aber wesentlich vom Sinn und von der weiteren Verwendung der Matrix ab.



  • also will nur ne matrix haben die 10x10 sternchen ausgibt. ohne damit irgendwas weiter zu verwenden.



  • Kolumbus schrieb:

    Da_Marcki schrieb:

    ... hab auch schon ne
    "char matrix[][]" gemacht.

    Und? Was ist dabei rausgekommen?

    MfG

    Da_Marcki schrieb:

    genau das hab ich schon probiert, aber da meckert der compiler,...
    ..."char matrix[][]"



  • Kolumbus schrieb:

    Hi Da_Marcki,
    eine AnsiString-Matrix[10][10] nehmen

    hab ich mal gemacht, jetzt müsste ich nur noch wissen, wie die ausgabe richtig lautet, weil er mir da nen fehler bringt
    (29: 'operator'<<not implemented in type 'ostream'for arguments of type 'AnsiStrng')

    #include <vcl.h>
    #include <conio.h>
    #include <dstring.h>
    #include <iostream.h>
    #pragma hdrstop
    
    //---------------------------------------------------------------------------
    
    #pragma argsused
    int main(int argc, char* argv[])
    {
    AnsiString matrix[10][10];
    
    for (int i=0;i<10;i++)
    {
    for (int j=0;j<10;j++)
    {
    matrix[i][j]="*";
    }
    }
    
    for (int i=0;i<10;i++)
    {
    for (int j=0;j<10;j++)
    {
    cout<<matrix[i][j];
    }
    }
            getch();
            return 0;
    }
    


  • Und warum nimmst du dann nicht char ?

    char matrix[10][10];
    

    und setzt dann deine Sterne

    matrix[i][j]='*';
    


  • Da_Marcki schrieb:

    also will nur ne matrix haben die 10x10 sternchen ausgibt. ohne damit irgendwas weiter zu verwenden.

    Da_Marcki schrieb:

    //...
    cout<<matrix[i][j];
    //...
    }[/cpp]

    😕
    Eine Ausgabe ist auch eine weitere Verwendung! 😉

    Da_Marcki schrieb:

    sothis_ schrieb:

    matrix[i][j]='*';
    

    edit: du solltest aber auch noch am datentyp feilen, damit es als sternchen angezeigt wird 😉

    genau das hab ich schon probiert, aber da meckert der compiler,
    dass er nicht char in int wandeln kann.
    ich weiß einfach nicht was ich ändern soll. hab auch schon ne
    "char matrix[][]" gemacht.

    An welcher Stelle hat denn der Compiler da gemeckert?

    Also mit dem Vorschlag von jogt müsste es wirklich gehen!



  • Da_Marcki schrieb:

    also will nur ne matrix haben die 10x10 sternchen ausgibt. ohne damit irgendwas weiter zu verwenden.

    Dann sollte doch so etwas völlig reichen:

    for (int i = 0; i < 10; ++i)
       cout << "**********" << endl;
    


  • jogt schrieb:

    Und warum nimmst du dann nicht char ?

    char matrix[10][10];
    

    und setzt dann deine Sterne

    matrix[i][j]='*';
    

    das ist jetzt nen scherz, oder? 🤡

    Da_Marcki schrieb:

    genau das hab ich schon probiert, aber da meckert der compiler
    "char matrix[][]"



  • Joe_M. schrieb:

    Da_Marcki schrieb:

    also will nur ne matrix haben die 10x10 sternchen ausgibt. ohne damit irgendwas weiter zu verwenden.

    Dann sollte doch so etwas völlig reichen:

    for (int i = 0; i < 10; ++i)
       cout << "**********" << endl;
    

    danke
    ich wollte es zwar als feld mit 10x10 elementen, sprich matrix[10][10],
    aber ich lass es jetzt so.

    /closed



  • Was genau hatte dein Compiler an

    char matrix[10][10];
    

    denn auszusetzen? Nur zu sagen das er meckert, ist ein bischen wenig.



  • Daran gibt es gar nichts auszusetzen, das funktioniert problemlos, muss also ein Tippfehler drin gewesen sein:

    char matrix[10][10];
    for (int i = 0; i < 10; ++i)
    {
    	for (int j = 0; j < 10; ++j)
    	{
    		matrix[i][j] = '*';
    	}
    }
    
    for (int i = 0; i < 10; ++i)
    {
    	for (int j = 0; j < 10; ++j)
    	{
    		std::cout << matrix[i][j];
    	}
    	std::cout << std::endl;
    }
    


  • Kolumbus schrieb:

    ... An welcher Stelle hat denn der Compiler da gemeckert? ...

    Braunstein schrieb:

    Was genau hatte dein Compiler [...]
    denn auszusetzen? Nur zu sagen das er meckert, ist ein bischen wenig.

    Also Da_Marcki? *NeugierigSchau*


Anmelden zum Antworten