Programmieren - alles kontrollieren 4.937 Themen, 20.645 Beiträge

Wie mache ich die "if else" passend ?

Selecta / 3 Antworten / Flachansicht Nickles

Vorab möchte ich euch bitte, egal wie schlecht die Umsetzung ist, mir nur im gleichen Stil eine Lösung anzubieten. Bitte keine neuen Mehtoden, wir lernen gerade das.



Also: Mein Code soll bei Eingabe von 2 Zahlen alle dazwischenliegenden, die durch 5 UND 7 teilbar sind ausgeben. Das klappt auch famos, nur leider weiß ich nicht, was ich als "if else" angeben muss, damit da nur 1x die von mir gewünschte "Keine Zahl íst teilbar" Antwort kommt ?

Mein Code:

void main (void)
{


int zahl_a, zahl_b, help;


cout << "Geben sie eine natuerliche Zahl ein: ";
cin >> zahl_a;
cout << endl << "Geben sie eine 2. natuerliche Zahl an: ";
cin >> zahl_b;
cout << endl << endl << "Nun werden alle Zahlen von " << zahl_a << " bis " << zahl_b << " gesucht,";
cout << endl << "die durch 7 UND 5 teilbar sind.";
cout << endl << endl;


while (zahl_a <= zahl_b)
{
help = 1;                                                          // ja zahl_a++ geht auch, ich weiß.
zahl_a = zahl_a + help;
if (zahl_a%7 == 0 && zahl_a%5 == 0)
cout << "Zahl: " << zahl_a << endl;
else if (zahl_a - zahl_b < 0)                       // Das Problem ist mir klar, er gibt für jede Stelle die
cout << "Nicht gefunden !" << endl;         nicht durch das teilbar ist, einmal "Nicht gefunden" aus.
}                                                            Er soll es aber für diesen Fall nur 1x ausgeben !
getch();
}                                                           

bei Antwort benachrichtigen
d-oli Selecta „Wie mache ich die "if else" passend ?“
Optionen

Hi

Eine kleine gut gemeinte Anmerkung:
***********************************************************
Das ...

help = 1;
zahl_a = zahl_a + help;

... ist aber schon ziemlich übel, bei uns hätte so was bestimmt Punkteabzug gegeben.

Meiner Ansicht wird an den Schulen viel zu wenig Wert auf einen guten Programmierstil gelegt, was bei C/C++ besonders wichtig ist. Ein guter Programmierstil erleichtert das (frühzeitige) erkennen von Fehlern, das Anpassen von bestehendem Quellkode und macht diesen lesbarer.
Wirst du einmal als Programmierer arbeiten, wirst du nicht darum herum kommen dir einen Programmierstil gemäss den firmenentsprechenden Programmierrichtlinien anzugewöhnen.

Hier mein Lösungsansatz für dein Problem:
**********************************************************

  
    
      
        void 
      
      main 
      (
      
        void
      
      )

{
int zahl_a , zahl_b , help , gefunden = 0 ; // guckst du !!!

cout << "Geben sie eine natuerliche Zahl ein: " ;
cin >> zahl_a ;
cout << endl << "Geben sie eine 2. natuerliche Zahl an: " ;
cin >> zahl_b ;
cout << endl << endl << "Nun werden alle Zahlen von " << zahl_a << " bis " << zahl_b << " gesucht," ;
cout << endl << "die durch 7 UND 5 teilbar sind." ;
cout << endl << endl ;

while ( zahl_a <= zahl_b )
{
help = 1 ;
zahl_a = zahl_a + help ;
if ( zahl_a % 7 == 0 && zahl_a % 5 == 0 )
{ // guckst du !!!
cout << "Zahl: " << zahl_a << endl ; // guckst du !!!
gefunden = 1 ; // guckst du !!!
}
}
if ( ! gefunden ) // guckst du !!!
{ // guckst du !!!
cout << "Nicht gefunden !" << endl ; // guckst du !!!
} // guckst du !!!
getch ();
}

Gruss, d-oli
Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen