Bitte um eure Hilfe (Fehlersuche)
-
Hi ihr,
als erstes muß ich euch sagen das ich hier neu im forum bin.Mein Name ist Toni und ich mache zur Zeit ein Fernstudium
zum Dipl. Ing. Elektrotechnik.
Natürlich haben wir auch Informatik und das steht auch bald eine Prüfung an.
Ein großteil der Punkte wird dort mit "Trockenprogrammierung" auf dem papier verdient. Programmiersprache Ansi C.Ich habe eine Aufgabensammlung die ich vor der Prüfung abarbeiten
will um dann fit zu sein. Ich habe schon ein paar aufgaben gemacht aber nun ein Problem. Ich will eine temperatur einlesen und das Prog soll dagen ob Eis/Wasser/dampf.
Da meine If abfrage immer das gleiche ergebniss lieferte habe ich erstmal die temp einlesen lassen und wollte sie mir direkt dancha wieder ausgeben lassen.
Dort ist auch der Fehler im programm. Ich geben 5 ein und er bringt mir ne negative große zahl.code
#include<stdio.h>
#include<math.h>int main()
{ int temp; //Variablendeklaration
int a=0;
int b=100;
printf("Eis -- Wasser -- Dampf\n\n");
printf("Bitte den Temperaturwert eingeben\n");
scanf("d%",temp);printf("%d", temp);
// if (temp < a)
// {printf("Eis\n\n");}
//if (temp > b)
// printf("Dampf\n\n");// else
// {printf("nix");}}
Ich denke ihr seht sofort wo hier der Fehler liegt.
Ich suche nun schon stundenlagen und probiere alles aus aber es will einfach nicht.
Ich bitte um eure Hilfe.Danke
Toni
-
Hi, hat sich schon erledigt.
Der Fehler lag beim einlesen.
es hätte heißen müssen: scanf("%d", &temp)die Variable temp war nicht als zeiger definiert.
Mfg
Toni
-
darf sie auch nicht.
-
deridiot schrieb:
darf sie auch nicht.
Aha. Und der Grund wäre?
-
scanf erwartet keinen zeiger sondern eine die adresse einer variablen.
-
deridiot schrieb:
scanf erwartet keinen zeiger sondern eine die adresse einer variablen.
womit werden Adressen übergeben, wenn nicht mit Zeigern?
-
int* ptr = malloc(sizeof(int)); scanf("%d", ptr); free(ptr);
ist doch vom Ergebnis äquivalent zu
int var; scanf("%d", &var);