Kann jemand dieses Beispiel in C-Code lösen?



  • Ein Quadrat, dessen Seitenlänge aus 2n +1 Zeichen besteht, soll programmiert werden. Man soll eine Prozedur,z.B. flagge(int n) schreiben, welche eine Flagge entsprechend dem Parameter n ausgibt.

    +++o+++
    ++ooo++
    +ooooo+
    ooooooo
    +ooooo+
    ++ooo++
    +++o+++

    Das Bsp. zeigt also den Fall n= 3. 👍



  • Ja!

    Aber hier werden keine Hausaufgaben gemacht.
    Zeig was du hast.



  • schau dir mal das an, besonders die relativ dynamische Lösung am Ende:
    http://www.c-plusplus.net/forum/279528

    probier dich selber dran, machen wird dir das keiner, nur helfen und auf den richtigen Weg führen



  • Heute Abend hast du Pech, denn ich würde die Aufgabe für dich lösen, habe aber gerade meinen PC frisch aufgesetzt und kann darum keine IDE starten.

    Und bis Visual Studio 2010 installiert ist bin ich wohl zu müde/angetrunken 🤡


  • Mod

    /rant/ schrieb:

    Heute Abend hast du Pech, denn ich würde die Aufgabe für dich lösen, habe aber gerade meinen PC frisch aufgesetzt und kann darum keine IDE starten.

    Und bis Visual Studio 2010 installiert ist bin ich wohl zu müde/angetrunken 🤡

    Richtige Programmierer benutzen edlin :xmas1: .

    Ach was rede ich da: copy CON source.c sollte auch gehen, wenn ich mich richtig an meine DOS-Zeiten erinnere 😃



  • ich bin noch nicht besonders weit gekommen!
    mein code sieht bis jetzt so aus:

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

    int main()
    {
    int n, i, j;
    scanf("%i", &n);
    int size = ((2*n)+1);

    for (i = 1; i <= size; ++i) {

    for(j=1; j <= size; ++j) {

    if(j == ((size/2)+1)) {

    printf("o");

    }

    else {
    printf("+");
    }
    }

    printf("\n");
    }

    return 0;
    }
    🙂



  • Zoro1900 schrieb:

    ich bin noch nicht besonders weit gekommen!
    mein code sieht bis jetzt so aus:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int n, i, j;
        scanf("%i", &n);
        int size = ((2*n)+1);
    
    	for (i = 1; i <= size; ++i) {
    
    	    for(j=1; j <= size; ++j) {
    
    	        if(j == ((size/2)+1)) {
    
    	            printf("o");
    
    	        }
    
    	        else {
                    printf("+");
    	        }
            }
    
            printf("\n");
    	}
    
        return 0;
    }
    

    🙂

    Vielen Dank für die Code-Tags 😃



  • Nach welcher Bedingung wird ein + oder o ausgegeben?

    Ansonsten hast du hier ein Programmgerüst:

    #include <stdio.h>
    
    void flagge(int n);
    
    int main()
    {
    	int n;
    
    	printf("n = ");
    	scanf("%d", &n);
    
    	flagge(n);
    
    	return 0;
    }
    
    void flagge(int n)
    {
    	int size = 2 * n + 1;
    
    	int i, j;
    
    	for (i = 0; i < size; ++i)
    	{
    		for (j = 0; j < size; ++j)
    		{
    			char ch;
    
    			if (1) // TODO: Bedingung zur Ausgabe von + oder o
    			{
    				ch = '+';
    			}
    			else
    			{
    				ch = 'o';
    			}
    
    			putchar(ch);
    		}
    
    		putchar('\n');
    	}
    }
    


  • leute ihr seid alle so schlecht!
    keine kann da mal was reinschreiben!



  • Danke gleichfalls.



  • void draw_flag(int n)
    {
      int i, j, k = 0;
      for (i = 1; i <= ((2 * n) + 1); ++i)
      {
        for (j = 1; j <= ((2 * n) + 1); ++j)
        {
          if (j + k >= n + 1 && j <= (((2 * n) + 1) / 2 + 1) + k)
            putchar('o'); else putchar('+');
        }
        if (i <= n) ++k; else --k;
        putchar('\n');
      }
    }
    

    😃 🙄


Anmelden zum Antworten