Archiv verlassen und diese Seite im Standarddesign anzeigen : [C] Wert vorgeben (Konstante)
asterix2379
15.10.2004, 21:05
Hi Jungs,
ich mal ne bescheidene Frage.
Wie kann ich unter C, Y einen festene Wert vorgeben?
Das Y quasi meine Konstante ist. Also meinetwegen Y ist immer 200,1323 .
Ich will quasi mit Y als konstante Zahl weiterrechnen.
Hab leider noch kein Buch :-/
mittels Präprozessor
#define Y 200.1323
oder echte Konstante (gibt’s aber AFAIK nur in C++):
const float y = 200.1323;
asterix2379
16.10.2004, 01:04
Muß das in die { } geschweiften Klammern? Oder davor?
Hannnibal
16.10.2004, 02:06
Moin,
die defines sind vor der main...also am besten unter den includes :).
Aber nimm besser const bei der variablen vereinbarung (gibts schon in c...).
Also:
const int y=100;
mfg
asterix2379
16.10.2004, 11:08
@ Hannibal
Kommt das ( const int y=100; ) dann in die {} oder davor. ??? *buck*
Ich denk es kommt in die {} , oder ?! :)
i_hasser
16.10.2004, 11:17
Na kommt drauf an, ob die Konstante lokal oder global sein soll ;).
asterix2379
16.10.2004, 11:21
Jetzt erzähl mir noch den Unterschied zwischen Lokal und Global beim C programmieren ;D ;) *noahnung*
i_hasser
16.10.2004, 11:23
global -> alle Funktionen etc. können drauf zugreifen,
lokal -> nur die Funktion selbst kann drauf zugreifen.
asterix2379
16.10.2004, 11:59
Ich denke lokal reicht. Es handelt sich nämlich hierbei um ein Rechenprogramm. Ein ganz simples. Es rechnet einen Betrag in einen anderen um.
Hier mein Code.
Ich weiß nur nicht wie ich das mit dem Y Wert machen soll.Y=1,22. Bzw. wo ich das Y einbinden soll.
Die Ausgabe soll bis zwei Stellen hinter dem Komma erfolgen.
#include <stdio.h>
#include <conio.h>
float main(void)
{
printf("\n");
printf("\t\tUMRECHNUNGSPROGRAMM DOLLAR --> EURO\n");
float x;
printf("Wieviel Euro sind Dollar ?\n");
printf("\n\n");
printf("Bitte geben Sie den gewuenschten Dollarbetrag ein \n\n");
scanf("%.2f",&x);
printf("Dollar entsprechen %.2f"x,y,x*y);
printf("\n\n");
printf("Danke");
printf("Matrikel Nr: xxxxxxx\n");
printf("Name\n");
getch();
}
i_hasser
16.10.2004, 12:29
Na da kannst du es lokal machen. Du kannst den Wert aber auch direkt eingeben, steht ja nur 2mal da.
asterix2379
17.10.2004, 18:00
Also ich hab jetzt nochmal ein wenig rumprobiert, aber ich bekomms nicht hin *traurig*
Wenn ich meine exe erstellen lassen will, dann bring der Compiler die Fehlermeldung, dass er zu viel arguments hat. Ich werd die Zeile mal markieren <------
Was mach ich falsch? *noahnung*
#include <stdio.h>
#include <conio.h>
#define y 1,22
float main(void)
{
printf("\n");
printf("\t\tUMRECHNUNGSPROGRAMM DOLLAR --> EURO\n");
float x;
printf("Wieviel Euro sind Dollar ?\n");
printf("\n\n");
printf("Bitte geben Sie den gewuenschten Dollarbetrag ein \n\n");
scanf("%.2f",&x);
printf("Dollar entsprechen: %.2f", x, y, x*y); <------
printf("\n\n");
printf("Danke");
printf("Matrikel Nr: xxxxxxx\n");
printf("Name\n");
getch();
}
hi asterix2379,
du hast einen platzhalter, gibst aber 3 argumente an.
printf("Dollar entsprechen: %.2f", x*y);
gruss tes
edit: und gleitkommawerte werden mit punkt in c dargestellt.
also: #define y 1.22
und macht die main-funktion mit dem rueckgabewert float keine probleme?
asterix2379
17.10.2004, 18:22
@ tes
Juhu es geht ;D *massa* danke schön
Zitat:
und macht die main-funktion mit dem rueckgabewert float keine probleme?
Ne wieso? Sollte es? Bin leider noch ziemlich unwissend :-/
Das mit dem . werd ich mir auch merken :)
#include <stdio.h>
#include <conio.h>
#define y 1.22
float main(void)
{
printf("\n");
printf("\t\tUMRECHNUNGSPROGRAMM DOLLAR --> EURO\n");
float x;
printf("Wieviel Euro sind Dollar ?\n");
printf("\n\n");
printf("Bitte geben Sie den gewuenschten Dollarbetrag ein \n\n");
scanf("%.2f",&x);
printf("Dollar entsprechen: %.2f * %.2f = %.2f", x, y, x*y); <-------------
printf("\n\n");
printf("Danke");
printf("Matrikel Nr: xxxxxxx\n");
printf("Name\n");
getch();
}
hi asterix2379,
wenns dein compiler so frisst, is ja gut.
aber du gewoehnst dir hier schon was falsches an.
was das fuer auswirkungen haben kann, weiss ich nicht. aber vermutlich keine.
mit dev cpp laesst sich das so nicht kompilieren.
der debuger spuckt dann folgendes aus: `main' must return `int'
ms vc dagegen kompiliert das, wie dein kompiler, anstandslos.
der rueckgabewert der main-funktion signalisiert dem bs oder aufrufendem prozess,
das das programm beendet wurde.
wuerde hier eine pruefung des exit-codes gemacht, lieferst du bei programmende einen verfaelschten wert.
gruss tes
i_hasser
17.10.2004, 20:51
Original geschrieben von tes
hi asterix2379,
wenns dein compiler so frisst, is ja gut.
aber du gewoehnst dir hier schon was falsches an.
was das fuer auswirkungen haben kann, weiss ich nicht. aber vermutlich keine.
mit dev cpp laesst sich das so nicht kompilieren.
der debuger spuckt dann folgendes aus: `main' must return `int'
ms vc dagegen kompiliert das, wie dein kompiler, anstandslos.
der rueckgabewert der main-funktion signalisiert dem bs oder aufrufendem prozess,
das das programm beendet wurde.
wuerde hier eine pruefung des exit-codes gemacht, lieferst du bei programmende einen verfaelschten wert.
gruss tes
Das ist natürlich richtig... hat aber nix mit den Konstanten zu tun ;) (ist mir desswegen auch garnet aufgefallen, der GNU C Compiler beschwert sich da drüber, Dev-C++ benutzt auch nur den Mingw32, ein Win32 Port vom GCC).
asterix2379
17.10.2004, 21:31
Zitat:
mit dev cpp laesst sich das so nicht kompilieren.
der debuger spuckt dann folgendes aus: `main' must return `int'
wuerde hier eine pruefung des exit-codes gemacht, lieferst du bei programmende einen verfaelschten wert.
Was "Falsches" gewöhn ich mir an. Versteh leider nicht so ganz was an meinem Code faslch sein soll. :-[ Kannst Du mir das vielleicht ein wenig "verständlicher" erklären. Würde das nämlich schon gern wissen, um es in Zukunft richtig zu machen.
Thx :)
Ünrigens hab ich den lcc-win32 Compiler. :)
i_hasser
17.10.2004, 21:54
main() muss einen integer zurückgeben, weil wir es mit 'int main' deklariert haben.
Also muss jeder Programmpfad (if-Anweisung oder weis der Geier was) mit einem 'return xyz' enden, wobei xyz irgend ein Wert ist (0, sofern das Programm normal beendet wurde).
hi asterix2379,
ich verweis nochmal auf die antwort in folgenden thread:
http://www.planet3dnow.de/vbulletin/showthread.php3?s=&threadid=184969 (http://www.planet3dnow.de/vbulletin/showthread.php3?s=&threadid=184969)
entweder eine main-funktion ohne parameter-liste:
int main(void)
{
//dein code
return 0;
}
oder eine main-funktion mit parameter-liste:
int main(int argc, char *argv[])
{
//dein code
return 0;
}
bei zweiter version uebergibt man beim start des programmes bestimmte startparameter,
die du auslesen kannst.
der erste parameter ist immer der pfad zu deiner datei.
es gibt auch noch die main-funktion ohne rueckgabewert, die aber bei dir ja nicht erlaubt ist.
void main(void)
{
//dein code
exit(0);
}
gruss tes
asterix2379
17.10.2004, 22:41
Also wenn ich das jetzt richtig verstanden habe, dann muß ich am Ende meines Codes
dieses
return 0;
einfügen und alles ist palleti ?! *duck* http://www.mysmilie.de/smilies/verschiedene/img/024.gif :)
@tes
Das hast Du mir ja schonmal erklärt.
Aber, jetzt versteh ich ,was Du damit gemeint hast. Ok.
i_hasser
17.10.2004, 22:53
Ja, ein return 0 macht die Sache korrekt.
vBulletin® v3.8.7, Copyright ©2000-2012, vBulletin Solutions, Inc.