000
18.04.2004, 17:35 Uhr
Desrod
|
Hallo,
musste ein Beispielprog für Arrays schreiben. Dabei hat mir mein Schwager etwas geholfen und bei ihm unter Borland Builder 5 hat es gestern noch gefunzt. Heute bei mir unter Borland 6 und Dev C++ funzt es nicht mehr.
Sinn war es, daß der User Zahlen eingibt und diese dann sortiert ausgegeben werden.
Hier mal der Quellcode:
C++: |
#include <conio.h> #include <stdio.h> #include <stdlib.h> #include <iostream.h>
//Konstante für Arraydimensionen #define ARRAYELEMENTE 5
/* Beispielprogramm Referat Arrays 2004-04-19 */
//Funktionsprototypen int einlesen(); int sort(); int ausgabe();
//globale Variablen int spielzahlen[ARRAYELEMENTE]; //globale Dekl. weil Call by Reference mit Arrays nur über Zeiger int sortierer[ARRAYELEMENTE];
//Hauptfunktion, steuert Programmablauf int main() { int returneinlesen = 1; int returnsort = 1; int returnausgabe = 1;
returneinlesen=einlesen(); //Funktion einlesen() wird aufgerufen
if (returneinlesen!=0) //Ablaufprüfung für Funktion einlesen() { cout << "Es ist ein Fehler aufgetreten in der Funktion einlesen(). programm wird beendet!"; exit(EXIT_FAILURE); //Programm wird abgebrochen - System gibt Fehlermeldung }
returnsort=sort(); //Funktion sort() wird aufgerufen
if (returnsort!=0) //Ablaufprüfung für Funktion sort() { cout << "Es ist ein Fehler aufgetreten in der Funktion sort(). programm wird beendet!"; exit(EXIT_FAILURE); //Programm wird abgebrochen - System gibt Fehlermeldung }
returnausgabe=ausgabe(); //Funktion ausgabe() wird aufgerufen
if (returnausgabe!=0) //Ablaufprüfung für Funktion ausgabe() { cout << "Es ist ein Fehler aufgetreten in der Funktion ausgabe(). programm wird beendet!"; exit(EXIT_FAILURE); //Programm wird abgebrochen - System gibt Fehlermeldung }
getch(); return 0; }
//Funktion zum Einlesen der Zahlen int einlesen() { int i=1, temp=0;
for (i=1; i<=ARRAYELEMENTE ; i++) //Jedes Feld im Array wird mit 0 initialisiert spielzahlen[i-1]=0;
for (i=1; i<= ARRAYELEMENTE; i++) //Anzalhl ARRAYELEMENTE bestimmt Wiederholungsschritte { cout << "*************Sortierer***************" << endl; cout << "\n\nBitte geben Sie die " << i << ". Zahl ein : "; cin >> temp; clrscr(); //Prüfung ob Zahl schon vorhanden while (temp==spielzahlen[0]||temp==spielzahlen[1]||temp==spielzahlen[2]||temp==spielzahlen[3]||temp==spielzahlen[4]||temp==spielzahlen[5]) { cout << "*************Sortierer***************" << endl; cout << "Bitte keine Zahlen doppelt nennen! "; cout << "\n\nBitte geben Sie die " << i << ". Zahl ein : "; cin >> temp; clrscr(); }
spielzahlen[i-1]=temp; //Eingabe wird im Arrayfeld gespeichert } return 0; }
//Funktion zum Sortieren int sort() { int sortvar=0; int anzkleiner=0; int i=0, k=0;
for (i=1; i <= ARRAYELEMENTE ; i++) //Jedes Feld im Array wird mit 0 initialisiert sortierer[i-1]=0;
for (i=1; i <= ARRAYELEMENTE; i++) //Anzalhl ARRAYELEMENTE bestimmt Wiederholungsschritte { sortvar=spielzahlen[i-1]; //Der Reihe nach wird jedes Element aus dem Array geholt
for (k=1; k <= ARRAYELEMENTE; k++) //Vergleicht auktuelles Element mit allen Elementen und zählt Anzahl kleinerer Elemente { if (spielzahlen[k-1]<sortvar) { anzkleiner++; } }
sortierer[anzkleiner] = sortvar; //Aktuelles Element wird an korrekter Stelle in neues Array geschrieben
anzkleiner=0; //Zählvariable wir auf 0 gesetzt, damit nicht zum vorherigen addiert wird } return 0; }
//Funktion zur Ausgabe int ausgabe() { int i=0; clrscr(); cout << "Hier die sortierten Werte: " << endl << endl; for (i=1; i<= ARRAYELEMENTE; i++) //Sortierte Elemente werden der Reihe nach ausgegeben { cout << sortierer[i-1] << endl; } return 0; }
|
Hoffe mir kann jemand helfen! Wäre wirklich sehr dankbar!!!
! Dieser Post wurde am 18.04.2004 um 17:58 Uhr von Pablo editiert. |