nur die erste erechnete zahl ausgeben???????



  • Hallo,
    int main()
    {
    int a = 1 , b;
    cout << " Bis wohin?";
    cin >> b;

    do {a++;
    if ( a%2 != 0 && a%3 != 0 && a%5 != 0)
    {cout << " is nich durch 2,3,5 teilbar: "<< a <<"\n";}
    }
    while (a<b);
    }

    ich hättt jetzt gern das egal was ich für b eingeb immer nur die erste Zahl ausgegeben wird. Wie mach ich das?
    kann ich an dem "while" befehl irgendwas ändern?

    noch ne frage wie kann ich die #include dateien auslesen hab dev c++ von bloodshet

    Vielen Dank



  • was verstehst du denn unter "erste zahl"??



  • benutze bitte codetags:

    [/ code]
    
    und ja du musst was an der while schleife ändern. in etwa so
    [code]
    int main ()
    {
    	int counter=0;
    	int AnzahlZahlenAnzeigen=1;
    	//...
    	do
    	{
    	//...
    	}
    	while (a<b && ++counter<AnzahlZahlenAnzeigen)
    }
    

    Edit: kleiner fehler.



  • randa schrieb:

    benutze bitte codetags:

    [/ code]
    
    und ja du musst was an der while schleife ändern. in etwa so
    [code]
    int main ()
    {
    	int counter=0;
    	int AnzahlZahlenAnzeigen=1;
    	//...
    	do
    	{
    	//...
    	}
    	while (a<b && ++counter<AnzahlZahlenAnzeigen)
    }
    

    Edit: kleiner fehler.

    wenn schon [ cpp] [/ cpp ] :p

    Devil



  • unter "erste Zahl" versteh ich die Zahl die vom Programm ausgegeben wird wenn man es ausführt.

    und zwar wenn ich für b 50 eingeb, gibt mir das programm
    7 11 13 17 19 23 29 31 37 41 43 47 49 aus.

    mich interesiert jetzt aber nur die 7 und der Rest is mir egal.
    und der Wert der dann ausgegeben wird (, also in dem Fall die 7) den müsst ich dann einer Variabeln zuweisen die ich einer Funktion übergben kann.

    Das mit dem Counter und dem AnzahlZahlenAnzeiger funktioniert auch nich so ganz
    weil das Programm mir dann nur solange Zahlen ausgibt solange die Differenz zwischen zwei aufeinander folgenden Zahlen < der Differenz zwischne AnzahlZahlenAnzeiger und Counter ist.
    und wie man aus der oberen kleinen Zahlenreihe schon erkennen kann ist die Differenz zweier aufeinanderfolgender Zahlen, ich glaub man sagt nicht stetig. Vielleicht sogar chaotisch, wens nich stimmt bitt ich um berichtigung.

    Es geht mir darum Primzahlen zu erzeugen. Die, die in der if Anweisung stehen sin ja die ersten.

    if(a%2 != 0 && a%3 != 0 && a%5 != 0)

    und in der Zahlenreihe oben is die 49 die einzige zahl die keine Primzahl ist weil sie is durch "7", die erste Zahl aus der Reihe Teilbar.
    erweiter ich nun die If schleife mit 7, ist die nächst Zahl die keine Primzahl ist die 77 und die is welch Wunder durch 11 Teilbar usw.



  • Grimblegrumbl schrieb:

    Hallo,

    int main()
    {
    int a = 1 , b;
    cout << " Bis wohin?";
    cin >> b;
    
    do {a++;
    if ( a%2 != 0 && a%3 != 0 && a%5 != 0)
    {cout << " is nich durch 2,3,5 teilbar: "<< a <<"\n";
    break;}
    }
    while (a<b);
    }
    

    ich hättt jetzt gern das egal was ich für b eingeb immer nur die erste Zahl ausgegeben wird. Wie mach ich das?
    kann ich an dem "while" befehl irgendwas ändern?

    noch ne frage wie kann ich die #include dateien auslesen hab dev c++ von bloodshet

    Vielen Dank

    ein break löst dein problem, ist aber wohl nicht der beste Weg...

    Devil



  • Das mit dem Counter und dem AnzahlZahlenAnzeiger funktioniert auch nich so ganz
    weil das Programm mir dann nur solange Zahlen ausgibt solange die Differenz zwischen zwei aufeinander folgenden Zahlen < der Differenz zwischne AnzahlZahlenAnzeiger und Counter ist.

    Hä? Wo ist da eine Differenz?
    Das Codebeispiel gibt nur die erste Zahl aus und beendet dann. Das ist es doch was du wolltest?

    Es geht mir darum Primzahlen zu erzeugen.

    Jetzt ist die Frage schon anders. Schau mal in google nach, da gibts zig beispiele zum erzeigen von Primzahlen. mit einer if Abfrage für %5, %7 usw... kommst du da nicht weit.



  • Wie wär´ s mit:

    int main() 
    { 
    int a = 1 , b; 
    cout << " Bis wohin?"; 
    cin >> b; 
    
    bool bGefunden = false;
    do {a++; 
    bGefunden = a%2 != 0 && a%3 != 0 && a%5 != 0;
    if ( bGefunden ) 
    {cout << " is nich durch 2,3,5 teilbar: "<< a <<"\n";} 
    } 
    while (a<b && !bGefunden ); 
    }
    


  • devil81 schrieb:

    ein break löst dein problem, ist aber wohl nicht der beste Weg...

    bitte vergleiche mal deinen version mit break und die version mit dem flag.
    was siehst du?


Anmelden zum Antworten