[C] Wert vorgeben (Konstante)

asterix2379

Vice Admiral Special
Mitglied seit
08.07.2002
Beiträge
884
Renomée
1
Standort
BB
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;
 
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
 
@ Hannibal

Kommt das ( const int y=100; ) dann in die {} oder davor. ??? *buck*
Ich denk es kommt in die {} , oder ?! :)
 
Jetzt erzähl mir noch den Unterschied zwischen Lokal und Global beim C programmieren ;D ;) *noahnung*
 
global -> alle Funktionen etc. können drauf zugreifen,
lokal -> nur die Funktion selbst kann drauf zugreifen.
 
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();
}
 
Na da kannst du es lokal machen. Du kannst den Wert aber auch direkt eingeben, steht ja nur 2mal da.
 
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?
 
Zuletzt bearbeitet:
@ 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
 
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).
 
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. :)
 
Zuletzt bearbeitet:
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

entweder eine main-funktion ohne parameter-liste:
Code:
int main(void)
{
  //dein code
  	
  return 0;
}

oder eine main-funktion mit parameter-liste:
Code:
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.
Code:
void main(void)
{
  //dein code
  
  exit(0);
}

gruss tes
 
Zuletzt bearbeitet:
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*
024.gif
:)

@tes

Das hast Du mir ja schonmal erklärt.
Aber, jetzt versteh ich ,was Du damit gemeint hast. Ok.
 
Zurück
Oben Unten