brauche hilfe beim kleinem prog???



  • und bitte so simple wie möglich!
    damit ich es auch nachvollziehen kann!
    thx



  • kann man das nicht einfach mit 2 schleifen machen eine macht leer zeichen und die zweite sternchen?



  • John Doh schrieb:

    hi
    und was bedeutet
    j+=2;

    Andere (schneller ausgeführte) Schreibweise für j = j + 2;



  • int main(){
    	int i,j,x=8;
    	for(i=0;i<x;++i){
    		printf("%*c*",x-i,' ');
    		for(j=0;j<i;++j)
    			printf("**");
    		printf("\n");
    	}
    	printf("%*c*",x,' ');
    }
    

    wenn mans dirty proggt könnte man einen schönen einzeiler draus machen 😃



  • Hepi schrieb:

    Andere (schneller ausgeführte) Schreibweise für j = j + 2;

    Das "schneller" gilt aber nur für C++ und nicht-built-in Typen. Ausserdem hängt es dann immer noch von der Implementierung des Operators ab. Da in C keine Operatorüberladung möglich ist, kann man diese auch nur auf built-in Typen anwenden, und der Compiler sollte dann durch Optimierung gleichen Code generieren.



  • hi noch mal
    was bedeutet dann "%*c*" umd warum ist das dirty programieren?
    ich habs folgendes zusammen gebastelt aber es leuft nicht was ist da falsch kann mir jemand helfen??
    thx

    #include <stdio.h>
    
    int main()
    {
    
       int h,i,j=1,k,u,l;
    
       printf("Wie hoch:");
       scanf("%d",&h);
    
    	   for(i=0;i<h;i++)
           {
    		   for(u=0;u<l;l++)
    
    		   {
    			   printf("p");
    		   }
    		   l=h-1;
    
    		  for(k=0;k<j;k++)
    		   {
    			   printf("*");
    		   }
    		       printf("\n");
    
    			   j=j+2;
    	   }
       return 0;
    }
    


  • hi noch mal
    was bedeutet dann "%*c*" umd warum ist das dirty programieren?
    ich habs folgendes zusammen gebastelt aber es leuft nicht was ist da falsch kann mir jemand helfen??
    thx

    #include <stdio.h>
    
    int main()
    {
    
       int h,i,j=1,k,u,l;
    
       printf("Wie hoch:");
       scanf("%d",&h);
    
    	   for(i=0;i<h;i++)
           {
    		   for(u=0;u<l;l++)
    
    		   {
    			   printf("p");
    		   }
    		   l=h-1;
    
    		  for(k=0;k<j;k++)
    		   {
    			   printf("*");
    		   }
    		       printf("\n");
    
    			   j=j+2;
    	   }
       return 0;
    }
    


  • Was deinen Code angeht, das erste, was mir auffällt, ist, dass du l nicht initialisierst, bevor du es benutzt, und diese Schleife

    for(u=0;u<l;l++)
    

    macht auch bei initialisiertem l nicht wirklich Sinn. Ich nehme an, dass du vor der Schleife l = h - 1 setzen und l bei jedem Schleifendurchlauf um eins erniedrigen wolltest, oder etwas in der Art.

    Was %*c angeht,

    printf("%*c", 10, 'a');
    

    gibt 9 Leerzeichen und ein a auf dem Bildschirm aus. Der * im Formatstring ist ein Platzhalter für eine Zahl (wie z.B. in "%5c"), nur dass printf sich die Zahl selbst aus dem entsprechenden Parameter holt. Was bei Windalf dreckig ist, ist höchstens, dass er das %*c im Formatstring mit einem space parametrisiert. Ich hätte es ähnlich angefangen, nämlich so:

    #include <stdio.h>
    
    int main(void) {
      int h, i, j;
    
      printf("Höhe eingeben: ");
      fflush(stdout);
    
      scanf("%d", &h);
    
      for(i = 0; i < h; ++i) {
        printf("%*c", h - i, '*');
        for(j = 0; j < i; ++j)
          printf("**");
        putchar('\n');
      }
      printf("%*c\n", h, '*');
    
      return 0;
    }
    


  • @John Doh...
    ich meinte man könnte das besonders schön dirty proggen indem man einen einzeiler draus machst...
    wenn du nen programm brauchst das das mit weniger als 70 ascii-zeichen schaft tippe ich mal ist Oxdeadbeef dein mann 😉



  • ok danke leute ihr habt mir sehr geholfen ich kenn mich in diesen sachen nicht sehr gut aus aber ezt werde ich es für mein studium brauche ich glaub ich werde noch ein paar mal eure hilfe benötigen 🙂
    thx an alle


Anmelden zum Antworten