Hilfe beim Programmieren



  • Hallo ich habe eine Aufgabe zum programmieren bekommen und ich weis nicht wie ich das Ende machen soll.
    Ich muss so machen:

    Gib gewünschte Hoehe ein:(1-9) und dan soll ich das herauszeichnen:
    Hoehe:4

    1-----1
    12---21
    123-321
    1234321

    Die Linke Seite und die Bindestriche scaffe 👍 ich aber ich weis nicht wie die rechte Seite machen soll 👎 😕 . Währe nett wenn ihr mir helfen könntet 🙂 [code="c"][code]



  • Indem du die Schleife, mit der du die linke Seite machst, rückwärts laufen lässt.

    for (i=10;i>0;i--)
    { ...
    }
    


  • DirkB schrieb:

    Indem du die Schleife, mit der du die linke Seite machst, rückwärts laufen lässt.

    for (i=10;i>0;i--)
    { ...
    }
    

    Geht das überhaupt, weil ich habe es so gemacht:

    i=1;
    u=2;
    b=1;
    bindes=h*2-3;
    while (i<=h)
    {
    printf ("%d",b);
    j=1;
    while (j<=bindes)
    {
    printf ("-");
    j++;
    }

    printf ("\n");
    b=b*10+u;
    u++;
    bindes=bindes-2;
    i++;
    }

    Und da habe ich es so emacht das ers 1 Zeile fertigmacht und dan in die nächste geht (\n) i muss es ja nur irgendwi einbauen das er in der 1 Zeile 1 herausgibt dan in der 2 .... . 🙂



  • Ich hätte die linke Seite so gemacht:

    int z,i,h = 9;
    for (z=1;z<=h;z++)
    { for (i=1;i<=z;i++)
      { puchar('0'+i); // printf("%d",i);
      }
      x = irgendeine tolle Berechnung, damit man von z und h auf die Anzahl der - kommt
      for (i=0;i<x;i++)
      { puchar('-'); // printf("-");
      }
     hier fehlt noch rückwärts
      putchar('\n'); //printf("\n);
    }
    

    ungetestet



  • #include <stdlib.h>
    #include <stdio.h>
    
    int main( void )
    {
    	unsigned height, i, line;
    
    	if( scanf( "%u", &height ) != 1 || !height ) {
    		fputs( "Input error!\n\n", stderr );
    		return EXIT_FAILURE;
    	}
    
    	for( line = 1; line <= height; ++line ) {
    
    		for( i = 1; i <= line; ++i )
    			printf( "%u", i % 10 );
    
    		for( ; i <= height; ++i )
    			putchar( '-' );
    
    		for( i -= 2; i > line; --i )
    			putchar( '-' );
    
    		for( ; i; --i )
    			printf( "%u", i % 10 );
    
    		putchar( '\n' );
    	}
    }
    
    40
    1-----------------------------------------------------------------------------1
    12---------------------------------------------------------------------------21
    123-------------------------------------------------------------------------321
    1234-----------------------------------------------------------------------4321
    12345---------------------------------------------------------------------54321
    123456-------------------------------------------------------------------654321
    1234567-----------------------------------------------------------------7654321
    12345678---------------------------------------------------------------87654321
    123456789-------------------------------------------------------------987654321
    1234567890-----------------------------------------------------------0987654321
    12345678901---------------------------------------------------------10987654321
    123456789012-------------------------------------------------------210987654321
    1234567890123-----------------------------------------------------3210987654321
    12345678901234---------------------------------------------------43210987654321
    123456789012345-------------------------------------------------543210987654321
    1234567890123456-----------------------------------------------6543210987654321
    12345678901234567---------------------------------------------76543210987654321
    123456789012345678-------------------------------------------876543210987654321
    1234567890123456789-----------------------------------------9876543210987654321
    12345678901234567890---------------------------------------09876543210987654321
    123456789012345678901-------------------------------------109876543210987654321
    1234567890123456789012-----------------------------------2109876543210987654321
    12345678901234567890123---------------------------------32109876543210987654321
    123456789012345678901234-------------------------------432109876543210987654321
    1234567890123456789012345-----------------------------5432109876543210987654321
    12345678901234567890123456---------------------------65432109876543210987654321
    123456789012345678901234567-------------------------765432109876543210987654321
    1234567890123456789012345678-----------------------8765432109876543210987654321
    12345678901234567890123456789---------------------98765432109876543210987654321
    123456789012345678901234567890-------------------098765432109876543210987654321
    1234567890123456789012345678901-----------------1098765432109876543210987654321
    12345678901234567890123456789012---------------21098765432109876543210987654321
    123456789012345678901234567890123-------------321098765432109876543210987654321
    1234567890123456789012345678901234-----------4321098765432109876543210987654321
    12345678901234567890123456789012345---------54321098765432109876543210987654321
    123456789012345678901234567890123456-------654321098765432109876543210987654321
    1234567890123456789012345678901234567-----7654321098765432109876543210987654321
    12345678901234567890123456789012345678---87654321098765432109876543210987654321
    123456789012345678901234567890123456789-987654321098765432109876543210987654321
    1234567890123456789012345678901234567890987654321098765432109876543210987654321
    

    works.



  • DirkB schrieb:

    Ich hätte die linke Seite so gemacht:

    int z,i,h = 9;
    for (z=1;z<=h;z++)
    { for (i=1;i<=z;i++)
      { puchar('0'+i); // printf("%d",i);
      }
      x = irgendeine tolle Berechnung, damit man von z und h auf die Anzahl der - kommt
      for (i=0;i<x;i++)
      { puchar('-'); // printf("-");
      }
     hier fehlt noch rückwärts
      putchar('\n'); //printf("\n);
    }
    

    ungetestet

    Gute Idee, nur bin ich noch nicht so vertraut mit den for-Schleifen. Sind ja auch while schleifen nur "verkürzt". 😃
    Ich könnte es ja so machen nur ich brauche halt diese Rechnung das man von 1 auf 21, 321,.. kommt. 🙂



  • Swordfish schrieb:

    #include <stdlib.h>
    #include <stdio.h>
    
    int main( void )
    {
    	unsigned height, i, line;
    
    	if( scanf( "%u", &height ) != 1 || !height ) {
    		fputs( "Input error!\n\n", stderr );
    		return EXIT_FAILURE;
    	}
    
    	for( line = 1; line <= height; ++line ) {
    	
    		for( i = 1; i <= line; ++i )
    			printf( "%u", i % 10 );
    
    		for( ; i <= height; ++i )
    			putchar( '-' );
    
    		for( i -= 2; i > line; --i )
    			putchar( '-' );
    
    		for( ; i; --i )
    			printf( "%u", i % 10 );
    
    		putchar( '\n' );
    	}
    }
    
    40
    1-----------------------------------------------------------------------------1
    12---------------------------------------------------------------------------21
    123-------------------------------------------------------------------------321
    1234-----------------------------------------------------------------------4321
    12345---------------------------------------------------------------------54321
    123456-------------------------------------------------------------------654321
    1234567-----------------------------------------------------------------7654321
    12345678---------------------------------------------------------------87654321
    123456789-------------------------------------------------------------987654321
    1234567890-----------------------------------------------------------0987654321
    12345678901---------------------------------------------------------10987654321
    123456789012-------------------------------------------------------210987654321
    1234567890123-----------------------------------------------------3210987654321
    12345678901234---------------------------------------------------43210987654321
    123456789012345-------------------------------------------------543210987654321
    1234567890123456-----------------------------------------------6543210987654321
    12345678901234567---------------------------------------------76543210987654321
    123456789012345678-------------------------------------------876543210987654321
    1234567890123456789-----------------------------------------9876543210987654321
    12345678901234567890---------------------------------------09876543210987654321
    123456789012345678901-------------------------------------109876543210987654321
    1234567890123456789012-----------------------------------2109876543210987654321
    12345678901234567890123---------------------------------32109876543210987654321
    123456789012345678901234-------------------------------432109876543210987654321
    1234567890123456789012345-----------------------------5432109876543210987654321
    12345678901234567890123456---------------------------65432109876543210987654321
    123456789012345678901234567-------------------------765432109876543210987654321
    1234567890123456789012345678-----------------------8765432109876543210987654321
    12345678901234567890123456789---------------------98765432109876543210987654321
    123456789012345678901234567890-------------------098765432109876543210987654321
    1234567890123456789012345678901-----------------1098765432109876543210987654321
    12345678901234567890123456789012---------------21098765432109876543210987654321
    123456789012345678901234567890123-------------321098765432109876543210987654321
    1234567890123456789012345678901234-----------4321098765432109876543210987654321
    12345678901234567890123456789012345---------54321098765432109876543210987654321
    123456789012345678901234567890123456-------654321098765432109876543210987654321
    1234567890123456789012345678901234567-----7654321098765432109876543210987654321
    12345678901234567890123456789012345678---87654321098765432109876543210987654321
    123456789012345678901234567890123456789-987654321098765432109876543210987654321
    1234567890123456789012345678901234567890987654321098765432109876543210987654321
    

    works.

    Danke sehr 🙂 🙂
    Ich muss mich nur bei den for-Schleifen bekannt machen 😃 🙂



  • savanluffy schrieb:

    Gute Idee, nur bin ich noch nicht so vertraut mit den for-Schleifen.

    Dann lernst du das jetzt.

    savanluffy schrieb:

    Sind ja auch while schleifen nur "verkürzt". 😃

    Eher anders gechrieben.

    savanluffy schrieb:

    Ich könnte es ja so machen nur ich brauche halt diese Rechnung das man von 1 auf 21, 321,.. kommt. 🙂

    Ist das Teil der Aufgabe mit der Rechnung?
    Einfach die Ziffern hintereinander schreiben.



  • Swordfish schrieb:

    #include <stdlib.h>
    #include <stdio.h>
    
    int main( void )
    {
    	unsigned height, i, line;
    
    	if( scanf( "%u", &height ) != 1 || !height ) {
    		fputs( "Input error!\n\n", stderr );
    		return EXIT_FAILURE;
    	}
    
    	for( line = 1; line <= height; ++line ) {
    	
    		for( i = 1; i <= line; ++i )
    			printf( "%u", i % 10 );
    
    		for( ; i <= height; ++i )
    			putchar( '-' );
    
    		for( i -= 2; i > line; --i )
    			putchar( '-' );
    
    		for( ; i; --i )
    			printf( "%u", i % 10 );
    
    		putchar( '\n' );
    	}
    }
    
    40
    1-----------------------------------------------------------------------------1
    12---------------------------------------------------------------------------21
    123-------------------------------------------------------------------------321
    1234-----------------------------------------------------------------------4321
    12345---------------------------------------------------------------------54321
    123456-------------------------------------------------------------------654321
    1234567-----------------------------------------------------------------7654321
    12345678---------------------------------------------------------------87654321
    123456789-------------------------------------------------------------987654321
    1234567890-----------------------------------------------------------0987654321
    12345678901---------------------------------------------------------10987654321
    123456789012-------------------------------------------------------210987654321
    1234567890123-----------------------------------------------------3210987654321
    12345678901234---------------------------------------------------43210987654321
    123456789012345-------------------------------------------------543210987654321
    1234567890123456-----------------------------------------------6543210987654321
    12345678901234567---------------------------------------------76543210987654321
    123456789012345678-------------------------------------------876543210987654321
    1234567890123456789-----------------------------------------9876543210987654321
    12345678901234567890---------------------------------------09876543210987654321
    123456789012345678901-------------------------------------109876543210987654321
    1234567890123456789012-----------------------------------2109876543210987654321
    12345678901234567890123---------------------------------32109876543210987654321
    123456789012345678901234-------------------------------432109876543210987654321
    1234567890123456789012345-----------------------------5432109876543210987654321
    12345678901234567890123456---------------------------65432109876543210987654321
    123456789012345678901234567-------------------------765432109876543210987654321
    1234567890123456789012345678-----------------------8765432109876543210987654321
    12345678901234567890123456789---------------------98765432109876543210987654321
    123456789012345678901234567890-------------------098765432109876543210987654321
    1234567890123456789012345678901-----------------1098765432109876543210987654321
    12345678901234567890123456789012---------------21098765432109876543210987654321
    123456789012345678901234567890123-------------321098765432109876543210987654321
    1234567890123456789012345678901234-----------4321098765432109876543210987654321
    12345678901234567890123456789012345---------54321098765432109876543210987654321
    123456789012345678901234567890123456-------654321098765432109876543210987654321
    1234567890123456789012345678901234567-----7654321098765432109876543210987654321
    12345678901234567890123456789012345678---87654321098765432109876543210987654321
    123456789012345678901234567890123456789-987654321098765432109876543210987654321
    1234567890123456789012345678901234567890987654321098765432109876543210987654321
    

    works.

    Die Ausgabe sieht für mich ziemlich sexy aus. Erinnert mich an die Negativversion von irgendwas.


Anmelden zum Antworten