Fragen zu C Programmierung

Robocop86

Fleet Captain Special
★ Themenstarter ★
Mitglied seit
16.10.2006
Beiträge
252
Renomée
6
Hallo,

ich habe mit der Programmiersprache C angefangen. Manches klappt ganz gut, bei manchem hängt es ein wenig. Wenn ich z.B. ein Programm schreiben soll mit der Aufgabe (freiwillige Aufgabe zum warm werden. Keine Benotung, bevor ein Admin mir eine Verwarnung verpasst):

" Lesen Sie in dieser Aufgabe drei Zahlen in die Variablen a, b, und c ein. Geben Sie dann am
Bildschirm das Maximum, das Minimum und den Mittelwert aus. Programmieren Sie eine
Variante, die mit ganzen Zahlen rechnet und eine weitere Variante, die mit Komma-Zahlen
arbeitet."

Das ganze ohne Arrays. Hab da folgendes geschrieben mit einer if Verzweigung und erst mal mit zwei Variablen getestet. Als Ergebnis bekomm ich nur eine Null raus.

#include <stdio.h>

int main() {
int a,b;
int max, min;

printf("Bitte erste Zahl eingeben:\n");
scanf("%d", &a);
printf("Bitte zweite Zahl eingeben:\n");
scanf("%d", &b);

if (b>a) {
b=max;
}

else {
a=max;
}
printf("Die maximale Zahl betraegt:%d", max);

return 0;
}
 

ShadowHunter_d

Lieutnant
Mitglied seit
05.06.2016
Beiträge
76
Renomée
2
if (b>a) {
b=max; // variable b wird inhalt von max zugewiesen also 0
}

else {
a=max; // variable a wird inhalt von max zugewiesen also auch 0;
}

somit bleibt max immer 0 und a bzw. b wird auch zu 0 ;)
 

Bitspyer

Admiral Special
Mitglied seit
12.10.2002
Beiträge
1.010
Renomée
43
Standort
Mainz
Zuweisung ist falsch rum.
Streng genommen ist max sogar undefiniert, da noch kein Wert zugewiesen worden ist. Je nach Compiler.
Du deklarierst nur Variablen, initialisierst sie aber nicht.
Dann entgeht mir noch, warum du nicht einfach direkt in die Variable schreibst (ohne & - Operator)

also, meine Lösung wäre:

C:
#include <stdio.h>

int main() {
int a,b = 0;
int max, min = 0;

printf("Bitte erste Zahl eingeben:\n");
scanf("%d", a);
printf("Bitte zweite Zahl eingeben:\n");
scanf("%d", b);

if (b>a) {
max = b;
}

else {
max = b;
}
printf("Die maximale Zahl betraegt:%d", max);

return 0;
}
 

Robocop86

Fleet Captain Special
★ Themenstarter ★
Mitglied seit
16.10.2006
Beiträge
252
Renomée
6
Moin Moin!

Ich bin gerade dabei mir beizubringen, wie man Header Dateien und Module erstellt und inkludiert. Ich bekomme immer die Fehlermeldung:

"Undefined reference to 'hello_world'" und "Id returned 1 exit status".

Jetzt lese ich oft etwas im Netz davon "gcc main.c hello_world.c -o main". Wo schreibe ich das den rein? Benutze als IDE Code::Blocks.
 

Reisi

Grand Admiral Special
Mitglied seit
29.03.2002
Beiträge
2.851
Renomée
36
"Undefined reference to 'hello_world'" und "Id returned 1 exit status".
Das heist, dass der Linker die Funktion "hello_world" nicht finden kann. Das File in dem die Funktion enthalten ist wird wahrscheinlich nicht kompiliert.
Jetzt lese ich oft etwas im Netz davon "gcc main.c hello_world.c -o main". Wo schreibe ich das den rein? Benutze als IDE Code::Blocks.
Das kommt normalerweise ins Makefile. Code::Blocks arbeitet aber normalerweise ohne Makefiles. Schau mal in den Projekteinstellungen unter Build Targets, ob das File mitkompiliert wird.
 

Robocop86

Fleet Captain Special
★ Themenstarter ★
Mitglied seit
16.10.2006
Beiträge
252
Renomée
6
"Undefined reference to 'hello_world'" und "Id returned 1 exit status".
Das heist, dass der Linker die Funktion "hello_world" nicht finden kann. Das File in dem die Funktion enthalten ist wird wahrscheinlich nicht kompiliert.
Jetzt lese ich oft etwas im Netz davon "gcc main.c hello_world.c -o main". Wo schreibe ich das den rein? Benutze als IDE Code::Blocks.
Das kommt normalerweise ins Makefile. Code::Blocks arbeitet aber normalerweise ohne Makefiles. Schau mal in den Projekteinstellungen unter Build Targets, ob das File mitkompiliert wird.

Super hat geklappt, danke. Die Haken haben gefehlt, wurde also nicht mitkompiliert.^^
 
Oben Unten