Der Benutzer soll eine beliebige ganzzahlige Zahl eingeben und das Programm prüft, ob diese Zahl eine Primzahl ist. Wenn ja, wird die Primzahl in einem Feld der Größe 10 gespeichert.
/* Beispiel: Arrays und Schleifen Filename: main.cpp Author: Lahmer Title: Primzahlenüberprüfung Description: Der Benutzer soll eine beliebige ganzzahlige Zahl eingeben und das Programm prüft, ob diese Zahl eine Primzahl ist. Wenn ja, wird die Primzahl in einem Feld der Größe 10 gespeichert. Last Change:16.01.2018 */ //Header-Dateien #include <iostream> #include <conio.h> //Namespace using namespace std; //Funktionsprototyp bool checkPrimzahl(int z); //Rückgabewert bool, Übergabe per Wert -> Variable z void ausgabe(int array[10],int anzahl); //Rückgabewert void (nichts), Übergabe per Zeiger (array, Arrays werden immer per Zeiger übergeben) und Übergabe per Wert (anzahl) //Hauptprogramm int main(int argc, char** argv) { //Lokale Variablendeklaration //Integer Array int feld[10]; bool erg; int zahl; char nochmal=' '; int k=0; //Beginn der Do-While Schleife do { cout << "Geben Sie bitte eine ganzzahlige Zahl ein: "; cin >> zahl; //Eingabe der Zahl //Aufruf der Funktion checkPrimzahl erg=checkPrimzahl(zahl); cout << endl << endl; //Bedinung, Prüfen ob erg == true ist, wenn ja => Zahl ist Primzahl, wenn nein => Zahl ist keine Primzahl if(erg==true) { cout << "Die eingegebene Zahl ist EINE Primzahl!" << endl; feld[k]=zahl; //Zahl wird in das Array namens feld an die Stelle k gespeichert k++; //k wird um 1 erhöht } else { cout << "Die eingegebene Zahl ist KEINE Primzahl" << endl; } cout << "Willst du noch eine ganzzahlige Zahl eingeben? (j/n)" << endl; //Einlesen der Entscheidung, ob der Benutzer nochmals eine Zahl eingeben will cin >> nochmal; cout << endl << "##################################################" << endl; } while (nochmal=='j'); //Bedingung der do-while Schleife => Solange der Benutzer j eingibt, wird das Programm wiederholt //Alle Primzahlen gesammelt ausgeben ausgabe(feld, k); //Übergabe der Adresse von feld und der Anzahl der Primzahlen (k) return 0; } //Funktionsdefinition bool checkPrimzahl(int z) { //Lokale Variablendeklaration bool = kann nur true oder false beinhalten bool primZ=true; //Prüfe alle Teiler von 2 bis z-1 for(int i=2; i<z; i++) { //Testen ob z/i ohne Rest teilbar if(z%i==0) { primZ=false; } } //Rückgabe des booleans ob die Zahl ein Primzahl ist (true oder false) return primZ; } void ausgabe(int array[10], int anzahl) { //Ausgabe aller Primzahlen for(int i=0; i<anzahl; i++) { cout << array[i] << endl; } }
Geben Sie bitte eine ganzzahlige Zahl ein: 16 Die eingegebene Zahl ist KEINE Primzahl Willst du noch eine ganzzahlige Zahl eingeben? (j/n) j ################################################## Geben Sie bitte eine ganzzahlige Zahl ein: 13 Die eingegebene Zahl ist EINE Primzahl! Willst du noch eine ganzzahlige Zahl eingeben? (j/n) j ################################################## Geben Sie bitte eine ganzzahlige Zahl ein: 317 Die eingegebene Zahl ist EINE Primzahl! Willst du noch eine ganzzahlige Zahl eingeben? (j/n) n ################################################## 13 317 -------------------------------- Process exited after 19.88 seconds with return value 0 Drücken Sie eine beliebige Taste . . .