Printen von Zwischenergebnissen
-
Hallo liebe C-Freunde,
Ich beginne gerade erst damit C zu lernen und habe eine Frage, die ihr mir hoffentlich beantworten könnt ;).
Undzwar habe ich eine Funktion zum tauschen von Variablen ohne temporäre Drittvariable:void tauschen (int *x, int *y) {
*x = *x ^ *y;
*y = *x ^ *y;
*x = *x ^ *y;
}Nun ist meine Frage an euch: Wie kann ich nach jedem Tauschschritt das Zwischenergebnis der Funktion ausprinten? Ich versuche mich die ganze Zeit schon an printf aber das kann ich ja anscheinend nur in der main function benutzen!?
MFG Shaggz
-
Wieso sollte man printf nur in main aufrufen können? Wieso zeigst du nicht deine/n Versuch/e? Wieso sollte man auf diese Art Variablen austauschen? Solche "Optimierungen" sind vollkommen unnötig, v.a. wenn man die Sprache noch nicht mal beherrscht.
void tauschen (int *x, int *y) { *x = *x ^ *y; printf("*x=%d *y=%d\n", *x, *y); *y = *x ^ *y; printf("*x=%d *y=%d\n", *x, *y); *x = *x ^ *y; printf("*x=%d *y=%d\n", *x, *y); }
-
Also die Funktion wurde uns so vorgegeben und wir sollen nun dazu nach jedem Tauschschritt das Ergebnis ausgeben.
Mein Code lautet immoment wie folgt:
void tauschen (int *x, int *y) { *x = *x ^ *y; *y = *x ^ *y; *x = *x ^ *y; } #include <stdio.h> int main(void) { int x = 2, y = 3; printf("Variable x: %i, Variable y: %i\n", x, y); inplace_swap(&x, &y); printf("Variable x: %i, Variable y: %i\n", x, y); return 0; }
Aber wenn ich so wie du es beschrieben hast das printf in tauschen mit reinschreibe bekomme ich folgende Fehlermeldung beim Erstellen der exe:
warning #2018: Undeclared function 'printf'; assuming 'extern' returning 'int'.
und:
error #2120: Redeclaration of 'printf', previously declared at ***(Anstatt der *** der Pfad des Source Datei) expected 'int __cdecl function()' but found 'int __cdecl function(const char * restrict, ...)'.
Ich muss dazu sagen, dass ich Pelles C als Entwicklungsumgebung nutze.
MFG
-
#include<stdio.h>
vergessen.
-
Ah Danke
Das wars
Funktioniert nun alles