Hilfe mein Weihnachtsprojekt spinnt
-
Hallo ich besuche zu Zeit ein Informatik schule und wir müssen über dern Weihnachtsferien ein Projekt in C programmieren dabei dürfen wir nur die Teile benützen das wir auch im Unterricht behandel haben.
Ich habe jetzt ein Alkoholrechner programmiert und es klappt auch soweit aber manchmal gibt der mir bei der Ausgabe nicht das Ergebnis aus sonder 1.#NF00 oder andere zahlen die ich nicht haben will aber das problem kommt erst wenn ich mehrmals das Programm teste.
ich hoffe ihr könnt mir helfen
#include "stdafx.h"
#include "stdio.h"using namespace System;
int main(array<System::String ^> ^args)
{int geschlecht;
double Verteilungsfaktor;
double gewicht;
double vol;
double vol1;
double vol2;
double vol3;
double vol4;
double menge;
double menge1;
double menge2;
double menge3;
double menge4;
int frage;
double k;
double erg;
double erggesammt;
int ergwirkung;char z;
printf("GEBENSIE FUER MAENLICH DIE 1 EIN UND FUER WEIBLICH DIE 2\n\n");
printf("INFO: DEN STAERKSTEN TRINKBARE ALKOHOL HAT 80 Volumenprozent\n\n\n\n");do {
printf("\n\nSind sie Maenlich oder Weiblich?\n");
scanf("%d",& geschlecht);
fflush(stdin);
}while(geschlecht>=3);switch(geschlecht)
{
case 1:
Verteilungsfaktor=0.7;
break;case 2:
Verteilungsfaktor=0.6;
break;default:
break;
}printf("\n\nwieviel wiegen sie angabe bitte in ganze kg\n");
scanf("%lf",&gewicht);
fflush(stdin);printf("\n\nwieviel Volumenprozent hatte das getraenk das sie getrunken haben\ngeben sie bitte nur das zahl ein wie z.B.5,11,17,35....80\n");
scanf("%lf",& vol);
fflush(stdin);printf("\n\nwieviel haben sie getrunken\nbitte angabe in ml wenn sie z.B. 0,3l getrunken haben dann geben sie 300 ein \n\n");
scanf("%lf",&menge);
fflush(stdin);printf("\n\nhaben sie sonst noch was getrunken 1=JA und 2=NEIN\n\n");
scanf("%d",& frage);
fflush(stdin);switch(frage)
{
case 1:printf("\n\nwieviel Volumenprozent hatte das getraenk das sie getrunken haben\ngeben sie bitte nur das zahl ein wie z.B.5,11,17,35....80\n");
scanf("%lf",& vol1);
fflush(stdin);printf("\n\nwieviel haben sie getrunken\nbitte angabe in ml wenn sie z.B. 0,3l getrunken haben dann geben sie 300 ein \n\n");
scanf("%lf",&menge1);
fflush(stdin);printf("\n\nhaben sie sonst noch was getrunken 1=JA und 2=NEIN\n\n");
fflush(stdin);
switch(frage)
{
case 1:printf("\n\nwieviel Volumenprozent hatte das getraenk das sie getrunken haben\ngeben sie bitte nur das zahl ein wie z.B.5,11,17,35....80\n");
scanf("%lf",& vol2);
fflush(stdin);printf("\n\nwieviel haben sie getrunken\nbitte angabe in ml wenn sie z.B. 0,3l getrunken haben dann geben sie 300 ein \n\n");
scanf("%lf",&menge2);
fflush(stdin);printf("\n\nhaben sie sonst noch was getrunken 1=JA und 2=NEIN\n\n");
scanf("%d",& frage);
fflush(stdin);
switch(frage)
{
case 1:printf("\n\nwieviel Volumenprozent hatte das getraenk das sie getrunken haben\ngeben sie bitte nur das zahl ein wie z.B.5,11,17,35....80\n");
scanf("%lf",& vol3);
fflush(stdin);printf("\n\nwieviel haben sie getrunken\nbitte angabe in ml wenn sie z.B. 0,3l getrunken haben dann geben sie 300 ein \n\n");
scanf("%lf",&menge3);
fflush(stdin);printf("\n\nhaben sie sonst noch was getrunken 1=JA und 2=NEIN\n\n");
scanf("%d",& frage);
fflush(stdin);
switch(frage)
{
case 1:printf("\n\nwieviel Volumenprozent hatte das getraenk das sie getrunken haben\ngeben sie bitte nur das zahl ein wie z.B.5,11,17,35....80\n");
scanf("%lf",& vol4);
fflush(stdin);printf("\n\nwieviel haben sie getrunken\nbitte angabe in ml wenn sie z.B. 0,3l getrunken haben dann geben sie 300 ein \n\n");
scanf("%lf",&menge4);
fflush(stdin);case 2:
break;default:
break;
}
}
}
}k=0.8;
vol=vol/100;
vol1=vol1/100;
vol2=vol2/100;
vol3=vol3/100;
vol4=vol4/100;
menge3=menge*vol*k+menge1*vol1*k+menge2*vol2*k+vol3*menge3*k+vol4*menge4*k;
gewicht=gewicht*Verteilungsfaktor;
erg=menge3/gewicht;printf("SIE HABEN %lf PROMILLE",erg);
scanf("%z");return 0;
}
-
nach kurzem überfliegen
-es ist nicht in code tags
-es ist kein C
-es enthält viel undefiniertes verhalten
-
Cneuling123 schrieb:
#include "stdio.h"
Sollte evtl.
#include <stdio.h>
heißen. Bin mir aber nicht sicher.
using namespace System;
Ich würde lieber einen "echten" Compiller ohne Microsofts
Zuzsatzverwenden.
0x0ERROR
-
String ^> ^args
Was macht denn das? Sowas hab ich noch nie gesehen ...
-
Cneuling123 schrieb:
Hallo ich besuche zu Zeit ein Informatik schule und wir müssen über dern Weihnachtsferien ein Projekt in C programmieren dabei dürfen wir nur die Teile benützen das wir auch im Unterricht behandel haben.
Und welche sind das?
Ich habe jetzt ein Alkoholrechner programmiert und es klappt auch soweit aber manchmal gibt der mir bei der Ausgabe nicht das Ergebnis aus sonder 1.#NF00 oder andere zahlen die ich nicht haben will aber das problem kommt erst wenn ich mehrmals das Programm teste.
Das liegt daran, dass du manche Variablen nur mit Werten beschreibst, wenn die Fragen "Haben Sie noch mehr getrunken?" mit ja beantwortet werden. Am Ende benutzt du die Variablen dennoch zur Berechnung, so dass ihre ggf. undefinierten Inhalte in das Ergebnis eingehen.
-
Gary meint z.B.:
#include "stdafx.h" // Microsoft #include "stdio.h" // warum "header" und nicht <stdio.h> ? using namespace System; // ist kein C int main(array<System::String ^> ^args) // sieht nicht nach C aus { int geschlecht;
Speichere die Datei mit der Endung .c oder stelle den Compiler so ein, das der nur C-Quelltext akzeptiert. Dann kannst du schreiben, klappt oder wo nicht.
Kann ja sein das folgende Zeile so gewollt ist:
menge3=menge*vol*k+menge1*vol1*k+menge2*vol2*k+vol3*menge3*k+vol4*menge4*k;
?
Frage wegen: menge3 = ... menge3 ...?Dann sind da noch Wiederholungen im Quelltext. Das kann man mit deutlich weniger Quelltext und übersichtlicher lösen.
-
Zumindest das
array<System::String ^> ^args
ist C++/CLI. Der Rest schaut mehr oder weniger nach hässlichem C aus.
Könntest du in Zukunft sinnvolle Titel vergeben? Wen interessiert "Hilfe mein Weihnachtsprojekt spinnt"? Du solltest das Problem beschreiben, das du hast, viele Leute ignorieren solche Threads grundsätzlich.
-
Setz das Zeugs in Codetags oder ich weigere mich, hier auch nur einen einzigen Satz als Hilfestellung an dir verschwenden.
Alternativ, da, friss:
http://www.amazon.de/Programmieren-C-Reference-Manual-deutscher-Sprache/dp/3446154973/