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
Beiträge zu diesem Thema Autor Datum
 if schleifen werden übersprungen 0cool 29.06.2005 12:43
 RE: if schleifen werden übersprungen LX 29.06.2005 12:46
 RE: if schleifen werden übersprungen deklarmart 29.06.2005 13:33
 if schleifen werden übersprungen 0cool 29.06.2005 15:01
 RE: if schleifen werden übersprungen Misel 29.06.2005 18:27
 RE: if schleifen werden übersprungen Black Star 29.06.2005 18:39
 RE: if schleifen werden übersprungen CDW 30.06.2005 00:22
 RE: if schleifen werden übersprungen Misel 04.07.2005 22:23
 RE: if schleifen werden übersprungen CDW 04.07.2005 23:32

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