Wie kann das in C programmieren???
-
Die Aufgabe lautet doch:
if(beta > alfa) { alfa mit beta vertauschen. } Ergebniss berechnen
Und ja, es geht mit den vorhandenen Variablen.
Und das
erg = 0.5* sqrt(1.345*(alfa-beta);
soll in einer extra Funktion stehen.
-
# include <stdio.h> # include <math.h> void main() { float alfa; float beta; float erg; scanf("%f",&alfa); scanf("%f",&beta); if(beta > alfa) { alfa = beta; } erg = 0.5* sqrt(1.345*(alfa-beta)); printf("%f", erg); }
so in der Art???
-
In de Art, ja.
Den Tausch musst du noch hinbekommen (im Augenblick hat alfa den Wert von beta).
Und das mit den Unterprogrammen.
Das Beispiel zum Vertauschen von zwei Variablen steht bestimmt in deinem Tutorial/Buch. Evtl. sogar unter swap.
-
das bekomme ich einfach nicht hin, schreib bitte das, was du meinst, ins programm
-
# include <stdio.h> # include <math.h> void main() { float alfa; float beta; float erg; scanf("%f",&alfa); scanf("%f",&beta); if(beta > alfa) { /* hier soll alfa mit beta vertauscht werden. alfa soll den Wert von beta erhalten und beta den Wert von alfa. Aber das soll in einer Funktion geschehen. Darum erfolgt hier nur der Aufruf: */ swapf(&alfa, &beta); // alfa = beta; gehört hier dann nicht mehr hin. } /* die Berechnung der folgenden Funktion soll laut Aufgabenstellung in einer Funktion erfolgen erg = 0.5* sqrt(1.345*(alfa-beta)); Darum erfolgt hier nur der Aufruf: */ erg = funktion(alfa, beta); printf("%f", erg); }
-
hier eine kleine Anregung für die Funktion swapf:
void swapf(float *a, float *b){ if (a != b){ (*(int*)a) ^= *(int*)b; (*(int*)b) ^= *(int*)a; (*(int*)a) ^= *(int*)b; } }
-
und was ist, wenn sizeof(float) != sizeof(int) ist
-
mov eax, [add_a] xchg eax, [add_b] mov [add_a], eax
Ne kleiner Scherz.
void swapf(float *a, float *b) { if(a!=b) { float c=*a; *a=*b; *b=c; } }
Müsste so gehen.
-
DirkB schrieb:
und was ist, wenn sizeof(float) != sizeof(int) ist
wird schon nicht
-
Llrot schrieb:
wird schon nicht
Bei meinem Quick-C ist int 16-Bit und float 4-Byte
-
Auf SPARC64/Solaris findet man manchmal sizeof(int) == 8. Auf Crays gibt es sogar sizeof(short) == 8.
-
Warum nicht so:
if(beta > alfa) erg = funktion(beta, alfa) else erg = funktion(alfa, beta)
-
DirkB schrieb:
Bei meinem Quick-C ist int 16-Bit und float 4-Byte
wer sowas uraltes hat würde nicht so anspruchsvolle Fragen stellen
-
Llrot schrieb:
wer sowas uraltes hat ...
Das gilt dann aber auch für die Cray