(Programmiersprache C) Ist damit die Aufgabenstellung erfüllt?

... komplette Frage anzeigen

4 Antworten

Deine Lösung ist falsch. Es wird so etwas ähnliches wie das hier erwartet:

void tausche(int *a, int *b) {
*a ^= *b;
*b ^= *a;
*a ^= *b;
}

Diese Funktion wird dann so aufgerufen:

int a = 4;
int b = 8;

tausche(&a, &b);

/* a == 8, b == 4 */

Ja, ich weiß, dass du das nicht nachvollziehen kannst, soll ja auch nur ein Denkanstoß sein! An deiner Stelle würde ich eine temporäre Integer-Variable einführen, anstatt eine XOR-Zuweisung zu benutzen.

Ich habe absichtlich diese Lösung gewählt, da du ja selbstständig deine Hausaufgaben machen sollst. (normalerweise verwendet man so eine XOR-Zuweisung nur dann, wenn der Stack heiliger als die Laufzeit ist ... aber auch das musst du jetzt noch nicht verstehen)

Das einzige, was du jetzt noch machen musst, ist den Funktionskörper von tausche() so anzupassen, dass der Wert von a und b mithilfe einer temporären Variablen getauscht werden. Das bekommst du aber hin, oder?

Viel Erfolg bei deiner Aufgabe! :)

Antwort bewerten Vielen Dank für Deine Bewertung

Hallo!

Auch eine Möglichkeit ;), aber ich glaube das ist nicht die Aufgabenstellung. Die Aufgabe ist doch den Wert von b in a zu speichern und den Wert von a in b zu speichern.

Ich gebe dir ein paar Tipps:
1) Du brauchst eine Funktion mit 2 Übergabeparameter a und b (vergiss den Stern nicht)
2) Damit der Wert von a oder b (je nachdem mit welcher Variable du zuerst anfängst) nicht verloren geht, nachdem er überschrieben wird, braucht man eine 3. Variable zum Zwischenspeichern

Viel Erfolg!

LG

Antwort bewerten Vielen Dank für Deine Bewertung

http://www.programmieraufgaben.ch/aufgabe/tausche/ecu8pdg7

Das ist zwar nicht die Lösung mit der "Subroutine" und den "Pointern", doch es soll einen Denkanstoss geben, wie innerhalb der Funktion die beiden Werte vertauscht werden könnten.

Antwort bewerten Vielen Dank für Deine Bewertung

Du sollst doch eine Funktion benutzen! Wo ist diese bei der in Verwendung????

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von uehcsxam
04.12.2015, 17:56

Ich kenne mich nicht so gut damit aus, deswegen habe ich einiger Verständnisprobleme.

0

Was möchtest Du wissen?