Unerwartete Ausgabe nach Berechnung

bauchinj

Erfahrenes Mitglied
Hallo!

Bekomme eine unerwartete Ausgabe bei einem SEHR einfach script:

Code:
#include <stdio.h>
int mal;

void eingabe(void){
   printf("Zahl eingeben: ");
   scanf("%Ld", &mal);
}
void ausgabe(int wert){
   printf("\nErgebnis: %Ld\n\n",wert);
}
int main(void){
   int zahl;
   eingabe();
   zahl = mal * 10;
   ausgabe(mal);
   return 0;
}

Bekomme als Ergebnis (bei einer Eingabe von zB 5) einen Wert, der etwa so aussieht: -4634224147684351015468867
Hat das etwas mit dem Speicher zu tun?

ps: Was bewirkt eigentlich das Return 0, hab das bei vielen Beispielen besehen, aber sehe keinen Grund dafür - Kennzeichnet dies das ende von main?


Danke für eure Antworten!
 
Hi.
Code:
int mal;

void eingabe(void){
   printf("Zahl eingeben: ");
   scanf("%Ld", &mal);
}
Wie kommst du auf %Ld ?

man scanf hat gesagt.:
L Indicates that the conversion will be one of a, e, f, or g and
the next pointer is a pointer to long double.
:google:

\edit: Schalte die Warnungen deines Compilers (-Wall) an, und beachte diese auch! Über diesen Fehler warnt der Compiler.
ps: Was bewirkt eigentlich das Return 0, hab das bei vielen Beispielen besehen, aber sehe keinen Grund dafür - Kennzeichnet dies das ende von main?
Du solltest dir mal die Grundlagen aneignen. Z.B. mit einem Buch - siehe z.B. http://openbook.galileocomputing.de...mm_003.htm#mj9cc44355bd8371dd1cc7d72016576fe8

Gruß
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück