000
08.11.2003, 18:14 Uhr
~Sandy
Gast
|
Hallo, ich bin Anfänger und habe zwei Probleme: Erstmal muß ich ein Array alphabetisch sortieren. Ich habe dazu in einem Tutorial was mit "Bubble sort" gefunden und es so probiert, aber irgendwie klappt es nicht. Ich habe auch keinen anderen Weg gefunden. Hier ist der Code:
C++: |
#include <iostream.h> #include <string.h> void get_list(); int main(){ get_list(); return 0; } char buf[80]; char *list[8]; char *p; void get_list() { int i; p = buf; for (i= 0;i<8;i++) { list[i] = p; cout <<"Enter a name.\n"; cin.getline(list[i], sizeof(list[i])); p = p + strlen(list[i]) + 1; } //Hier mein vergeblicher Versuch, das Array list alphabetisch zu sortieren: char *temp; for(i=0;i<7;i++) { for(int j=0;j<7;j++) { if(list[j] > list[j+1]) { temp = list[j]; list[j] = list[j+1]; list[j+1] = temp; } } } for(i=0;i<8;i++) cout << list[i] << endl; }
|
Mein zweites Problem ist, ein Programm zu schreiben, das einen String als Eingabe nimmt, und dann den ersten mit dem letzten Buchstaben austauscht, den zweiten mit dem vorletzten, usw. Es soll aber nicht einfach nur das eingegebene Wort rückwärts ausgeben. So wie ich das Programm gemacht habe, klappt es nur für eine vorher festgelegte Anzahl von Buchstaben. Hier ist der Code der nur für z.B. ein Wort mit 5 Buchstaben funktioniert. Ich habe vergeblich versucht, eine For-Schleife zu machen, die je nach Länge des Strings jeweils die Buchstaben austauscht, aber das hat überhaupt nicht geklappt.
C++: |
#include <iostream.h> #include <string.h> void change(char*, char*, char*, char*); char word[20], new_word; int main() { int length, i; char a, b, c, d, e; cout << "Please enter a word.\n"; cin.getline(word, 20); length = strlen(word); i = length/2; c = word[i]; a = word[0]; i = length -1; e = word[i]; b = word[1]; i = length -2; d = word[i]; cout <<"Before function change: "<<a<<b<<c<<d<<e<<endl; change(&a, &e, &b, &d); cout <<"After function change: " <<a<<b<<c<<d<<e<< endl; return 0; } void change(char *a, char *e, char *b, char*d) { int temp; temp = *a; *a = *e; *e = temp; temp = *b; *b = *d; *d = temp; }
|
Ich wäre für jede Idee oder Hinweis sehr dankbar! Und habt bitte Nachsicht mit mir, ich bin echt Anfänger und suche nach einer möglichst einfachen Lösung. (Kompliziertere Sachen checke ich noch nicht so recht.) Vielen Dank im voraus!!!
Sandy Dieser Post wurde am 08.11.2003 um 20:12 Uhr von FloSoft editiert. |