C (for schleife) Zahlen ersetzen



  • Das Problem ist das wir noch nicht soweit sind.
    Wir sind erst bei den Schleifen in C.



  • Ohje, Ziffernsumme habe ich überlesen, der Begriff Quersumme wäre mir wahrscheinlich ins Auge gefallen...

    Dann überlege dir einmal, wie du an die einzelnen Ziffern herankommst, Hinweis: %10 gefolgt von einem /10, um die letzte Stelle zu verwerfen.

    Alles klar?

    Greetz



  • #include <stdio.h> 
    
    int Quersumme(int zahl) {
    	int quersumme = 0;
    	while (zahl > 0) {
    		quersumme += zahl % 10;
    		zahl /= 10;
    	}
    	return quersumme;
    }
    
    int Anzahl(int zahl) {
    	int anzahl = 0;
    	while (zahl > 0) {
    		zahl /= 10;
    		++anzahl;
    	}
    	return anzahl;
    }
    
    int main(){ 
    	int zahl, anzahl;
    
    	for(zahl = 0; zahl <= 299; ++zahl{
    		if(zahl %7 == 0 || Quersumme(zahl) == 7) {
    			for(anzahl = 0; anzahl < Anzahl(zahl); ++anzahl)
    				printf("*");
    		}
    		else {printf("%i", zahl);}
    
            printf(" ");
        }
    
    	return 0; 
    }
    


  • Ach sieh mal an, alles mit Schleifen. 😃



  • counter schrieb:

    Ohje, Ziffernsumme habe ich überlesen, der Begriff Quersumme wäre mir wahrscheinlich ins Auge gefallen...

    Dann überlege dir einmal, wie du an die einzelnen Ziffern herankommst, Hinweis: %10 gefolgt von einem /10, um die letzte Stelle zu verwerfen.

    Alles klar?

    Greetz

    ich verstehe es immer noch nicht!! 😞



  • Dann schaue dir mal an, wie das in einem weiter oben geposteten Vorschlag gelöst wurde.



  • Wie schaffe ich die Zahlen die durch 7 teilbar sind oder deren Ziffernsumme 7 ist durch Sterne zu ersetzen?

    #include<stdio.h>
    
    int main(void) {
    
      int zahlen;  //die Variable für die Ausgabe von Zahlen 0-299
      int e;  //Einerstelle
      int z;  //Zehners.
      int h;  //Hunderters.
    
      for(zahlen=0;zahlen<=299;zahlen++){   //Ausgabe der Zahlen von 0 bis 299
        e=zahlen%10;
        z=(zahlen/10)%10;
        h=zahlen/100;
    
        if(zahlen%7==0 || e+z+h==7) {
          printf("*");
        }
    
        printf("%4d", zahlen);
      }
    
      return 0;
    }
    


  • Liest du die Antworten überhaupt durch?

    Oooooo! hat doch die komplette Aufgabe schon gelöst. (vor 45 Minuten)



  • Ja aber ich verstehe es nicht wie er es gemacht hat, weil ich noch in der 1.Klasse bin und wir zwischen #include und int main() noch nie etwas geschrieben haben.



  • #include <stdio.h> 
    
    int main(){ 
        int zahl, tmpzahl, anzahl, i, quersumme; 
    
        for(zahl = 0; zahl <= 299; ++zahl) { 
    		quersumme = 0;
    		anzahl = 0;
    		tmpzahl = zahl;
    
    		while (tmpzahl > 0) { 
    			quersumme += tmpzahl % 10; 
    			tmpzahl /= 10; 
    			++anzahl;
    		} 
    
            if(zahl %7 == 0 || quersumme == 7) {
                for(i = 0; i < anzahl; ++i) 
                    printf("*"); 
            } 
            else {printf("%i", zahl);} 
    
            printf(" "); 
        } 
    
        return 0; 
    }
    


  • Vielen DANK Oooooo! 🙂


Anmelden zum Antworten