C++ Werte unkontrollierbar [CLOSE PLS]
-
Guten Abend.
Ich habe ein Problem mit meinem C++ Programm. Es läuft einwandfrei, jedoch sind die ausgegebenen Werte sehr unberechenbar. Bei meinem Programm soll folgendes passieren:
→ 2 Wassereimer
→ verschiedene Wassermengen in diesen Eimern
→ Pro Durchlauf soll 30% des akutellen Inhalts von Eimer1 in Eimer2 geschüttet werden
→ Dasselbe mit 60% von Eimer2 zu Eimer1.WURDE GELÖST
Source:
#include <conio.h> #include <iostream> #include <math.h> using namespace std; int main() { float eimer1,eimer2,wasser1,wasser2,w1k(0),w2k(0),x(0); int durchlauf(0); printf("Seas! Wasserumf"); // Titel, Definition von Umlaut cout << static_cast<unsigned char>(129); printf("ller hier!\n---------------------------------------------------\n"); printf("1. Eimer: "); // Einlesen aller Startwerte scanf ("%f",&eimer1); printf("\n2. Eimer: "); scanf ("%f",&eimer2); printf("\nWie oft das Verfahren: "); scanf ("%i",&durchlauf); printf("\nVon E1 zu E2 wird immer 30%% umgeleert. Von E2 zu E1 anschliessend 60%%!\n"); // Erklären (evtl. später Eingabe von %-Werten) for (w2k;w2k<=durchlauf+1;w2k++) // Durchläufe { wasser1=eimer1*0.3; // Wasserumfüllen, Abziehen aus Ex-Eimer, Addieren in New-Eimer eimer2+=wasser1; eimer1-=wasser1; wasser2=eimer2*0.6; eimer1+=wasser2; eimer2-=wasser2; x++; wasser1=w1k; // Setzen der %-Werte auf 0 wasser2=w1k; } printf("Wasserstand Eimer1: %f\n",eimer1); // Ausgabe printf("Wasserstand Eimer2: %f\n",eimer2); getch(); }
-
scanf ("%i",&eimer1);
man scanf schrieb:
i Findet eine optional verzeichenbehaftete Ganzzahl; der nächste
Zeiger muss ein Zeiger auf int sein. Die Ganzzahl wird eingele-
sen zur Basis 16 wenn sie mit ‘0x’ oder ‘0X’ beginnt, zur Basis
8 wenn sie mit ‘0’ beginnt, anderenfalls zur Basis 10. Nur
Zeichen, die zur Basis passen, werden benutzt.Und von welchem Typ ist eimer1? Vom Typ Ganzzahl? Vielleicht loest das nicht das Problem, aber aber ... Warum nutzt du eigentlich nicht die C++ Funktionen fuer Aus- und Eingabe mit der Konsole?
-
scanf ("%i",&eimer1);
Integer ist aber viel zu ungenau oder, schließlich ist bei %-Rechnung nicht immer der Wert ohne Nachkommastellen. 30% von 7 z.b.
-
Wie kommst Du darauf, dass "%i" hier richtig ist?
Erklär mal.