NEXT_Prime; PREV_PRIME; DISPLAY_PRIMES
-
Ja! Nimm als Quelle next_prime!
-
Belli schrieb:
Ja! Nimm als Quelle next_prime!
Einfach nur den Gegenteil?
-
Du solltest darüber nachdenken, Dir eine andere Beschäftigung zu suchen.
-
Ich weiss das ist nicht meine stärkste Seite aber hab nur seit zwei Wochen damit angefangen.
-
Kann mir irgendjemand weiterhelfen??
Es geht um die Prev_prime, also die letzte Primzahl und Display_prime, also die Primzahlen zwischen [1,N].
Wäre sehr dankbar!!!
-
Harry1990 schrieb:
Kann mir irgendjemand weiterhelfen??
Es geht um die Prev_prime, also die letzte Primzahl und Display_prime, also die Primzahlen zwischen [1,N].
Wäre sehr dankbar!!!
Jetzt funktioniert Prev_prime!
-
Kann irgendjemand mir weiterhelfen?
Prev_prime funktioniert nicht richtig wie es sollte....#include <iostream> using namespace std; const int EXIT = 5; //Forward declare menu function bool test_prime (int number); int prev_prime (int number); int next_prime (int number); void menu(); int main() { int option = EXIT; int number; //Declare any other needed variables and constants here do { //Display the menu menu(); cin >> option; //Read user option switch (option) { case 1: cout << "Test prime? "; cin >> number; if(test_prime(number)) cout << "Number is prime\n"; else cout << "Number is not prime\n"; break; case 2: cout << "Next Prime? "; cin >> number; cout << "\nNext prime: " << next_prime(number) << '\n'; break; case 3: cout << "Prev Prime? "; cin >> number; cout << (prev_prime(number)); cout << "There's no previous prime"; cout << "\nPrevious prime of " << number << " is " << next_prime(number) << '\n'; break; case 4: cout << "N? "; break; case 5: cout << "Exiting ..."; break; default:cout << "Wrong choice!!!"; break; } //End of switch //Handle user option } while (option != EXIT); return 0; } void menu(){ cout << "=================\n" "1. Test Prime\n" "2. Next Prime\n" "3. Prev Prime\n" "4. Display Primes\n" "5. Exit\n" "=================\n"; cout << "\nYour Choice: "; } bool test_prime (int number) { if (number) { return false; } for (int i = 2; i <=number/2; i++){ if (number%i == 0){ return false; }} return true; } int next_prime (int number) { for(++number; !test_prime(number); ++number); return number; } int prev_prime (int number) { int oldPrime = number; if (number <= 2) { return false; } else { while (true) { if (test_prime (number) && number < oldPrime ){ return number; } --number; } } }
-
Du hast, warum auch immer, Deine test_prime - Funktion verhunzt.
Damit funktioniert auch Test Prime und Next Prime natürlich nicht mehr.Sag mal: Was von dem ganzen Zeug hast Du selbst geschrieben und was hast Du von woanders her bekommen?
Ich rate mal: Die main - Funktion und die menu - Funktion sind nicht von Dir.
-
Du solltest das wirklich in das C++-Forum schreiben:
https://www.c-plusplus.net/forum/f15Wenn du regelmässig Probleme mit einer kritischen Funktion bekommst, würdest du üblicherweise automatisch prüfen, ob sie noch richtig funktioniert. Zum Beispiel etwa so:
#define UNIT_TEST(e) \ if (!(e)) { cout << "Unit test " << #e << " failed in line " << __LINE__ << endl; return 1; } int main() { ... UNIT_TEST(test_prime(1) == false); UNIT_TEST(test_prime(2) == true); UNIT_TEST(test_prime(100) == false); UNIT_TEST(test_prime(101) == true); }
Auf diese Weise wäre dir aufgefallen, wo das Problem liegt.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (alle ISO-Standards) in das Forum C++ (alle ISO-Standards) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.