BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C if schleifen werden übersprungen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen if schleifen werden übersprungen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
0cool
Junior Member


Dabei seit: 03.02.2005
Beiträge: 169

if schleifen werden übersprungen       Zum Anfang der Seite springen

Hey Leute,

erst mal ich hab vor zwei tagen mit C-Programmieren angefangen also noch ein völliger Newbie.
Mein Problem ist das in meinem Programm beide if schleifen übersprungen werden und ich weis nicht woran das liegt.
hier erstmal mein quellecode:

/* bspl0012.c */
#include <stdio.h>
main () {
int zahl;
float betrag;
printf ("\n\tE u r o r e c h n e r\n");
printf ("\n1 DM --> Euro\n2 Euro --> DM\n");
printf ("Ihre Wahl: ");
scanf ("%f", &zahl);

if (zahl == 1) {
printf ("Bitte DM Betrag eingeben: ");
scanf ("%f", &betrag);
printf ("%.2f DM sind %.2f Euro\n\n", betrag, betrag*0.51129);
}

if (zahl == 2) {
printf ("Bitte EURO Betrag eingeben: ");
scanf ("%f", &betrag);
printf ("%.2f EURO sind %.2f DM\n\n", betrag, betrag*1.95583);
}


system("PAUSE");
return 0;
}

Danke für eure Hilfe

0cool

__________________
Es gibt keine blöden Fragen, nur blöde Antworten!!!

29.06.2005 12:43 0cool ist offline E-Mail an 0cool senden Beiträge von 0cool suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

      Zum Anfang der Seite springen

Du liest die Zahl als float ein (%f bei scanf()), vergleichst sie aber mit Integern (== 1 oder 2). Solche Vergleiche funktionieren nicht. Wenn du also Integer mit Integern vergleichen willst, dann lese auch nur Integer ein, das müsste das Kürzel %d bei scanf() gewesen sein.

__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

29.06.2005 12:46 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
deklarmart
Aufsteiger


images/avatars/avatar-138.jpg

Dabei seit: 02.01.2003
Beiträge: 85
Herkunft: Germany

      Zum Anfang der Seite springen

ich kenne nur java, aber trotz der ähnlichkeit habe ich noch NIE eine IF-Schleife gesehen!
gibts sowas in C endlich??? großes Grinsen

__________________
Uns ist in alten maeren aa wunders vil geseit
von hackern lobebaeren, aa von großer apachenheit
von rooten, lan-partis, aa von win und dos,
von küener hacker striten, aa muget ir nu linux hoern sagen.

Linux-Edda
29.06.2005 13:33 deklarmart ist offline E-Mail an deklarmart senden Beiträge von deklarmart suchen
0cool
Junior Member


Dabei seit: 03.02.2005
Beiträge: 169

Themenstarter Thema begonnen von 0cool
if schleifen werden übersprungen       Zum Anfang der Seite springen

@LX: es lag an der zeile die du gemeint hast

scanf ("%f", &zahl);

mit dem %d statt %f hat es nicht funktioniert, aber das kürzel für interger bei C ist auch %i und damit hat es dann auch geklappt

Danke für deine hilfe

0cool

__________________
Es gibt keine blöden Fragen, nur blöde Antworten!!!

29.06.2005 15:01 0cool ist offline E-Mail an 0cool senden Beiträge von 0cool suchen
Misel Misel ist männlich
Hüter des Kitkat


images/avatars/avatar-2084.png

Dabei seit: 02.11.2002
Beiträge: 1.203
Herkunft: live://home.berlin.d e

RE: if schleifen werden übersprungen       Zum Anfang der Seite springen

Zitat:
Original von 0cool
mit dem %d statt %f hat es nicht funktioniert, aber das kürzel für interger bei C ist auch %i und damit hat es dann auch geklappt

jain,

%i und %d stehen beide für einen Integerplatzhalter. printf und scanf sind reagieren dabei jedoch mitunter unterschiedlich.

__________________
LAUFT! Ich spiele KILLERSPIELE!
29.06.2005 18:27 Misel ist offline E-Mail an Misel senden Homepage von Misel Beiträge von Misel suchen
Black Star Black Star ist männlich
Der Pate [Admin]


images/avatars/avatar-2158.jpg

Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr

      Zum Anfang der Seite springen

Bei der glibc sieht das so aus:

d
Matches an optionally signed decimal integer; the next pointer must be a pointer to int.

i
Matches an optionally signed integer; the next pointer must be a pointer to int. The integer is read in base 16 if it begins with `0x' or `0X', in base 8 if it begins with `0', and in base 10 otherwise. Only characters that correspond to the base are used.

__________________
vescere bracis meis

29.06.2005 18:39 Black Star ist offline E-Mail an Black Star senden Homepage von Black Star Beiträge von Black Star suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

      Zum Anfang der Seite springen

hm, also in lcc32 funktioniert es mit beidem: %i und %d. Allerdings steht in der Hilfe dass beides "Signed dezimal integer" sind.
*ist gar nicht so einfach eine ANSI C Referenz zum download zu finden.*
laut http://www.petra-budde.de/download/ansi-c.pdf
sind i und d dezimal, ganzzahlig. Also zumindest von der Logik her dürften auch beide Varianten funktionieren.
@0cool: könntest Du sagen welchen Compiler Du verwendest?

PS: und noch ein Grund mehr, C nicht zu mögen und beim Müsli zu bleiben Augenzwinkern .
30.06.2005 00:22 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
Misel Misel ist männlich
Hüter des Kitkat


images/avatars/avatar-2084.png

Dabei seit: 02.11.2002
Beiträge: 1.203
Herkunft: live://home.berlin.d e

      Zum Anfang der Seite springen

Zitat:
Original von CDW
Müsli


verwirrt

__________________
LAUFT! Ich spiele KILLERSPIELE!
04.07.2005 22:23 Misel ist offline E-Mail an Misel senden Homepage von Misel Beiträge von Misel suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

      Zum Anfang der Seite springen

@Misel:
http://www.google.de/search?hl=de&ie=ISO...gle-Suche&meta=
Zitat:

Echte Programmierer benutzen FORTRAN. Müsli-Fresser benutzen PASCAL.


ja, ich bin ein Müslifresser Zunge raus
04.07.2005 23:32 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C if schleifen werden übersprungen

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH