bitte helfen - komm nicht weiter....
-
Hallo
GPC schrieb:
es heißt int main() und ganz unten kommt ein return 0; rein. Des Weiteren schreibt man statt #include <iostream.h> folgendes:
Das solltest du trotzdem noch ändern.
chrische
-
Also ich hätte da auch ein kleines Problem!
Ich muss da für die Schule ein Programm erstellen, mit einer Würfelstatistik. Zum Glück hab ich von einem Kumpel da schon ein fertiges Programm bekommen, allerdings mussten wir noch ein Unterprogramm einbauen! Ok, so weit so gut, das Programm an sich funktioniert ja, hier is mal der Code:// Turbo, 28.4.2006, all rights reserved
#include <iostream.h> // für cin() und cout()
#include <iomanip.h> // für setw()...
#include <stdlib.h> // für rand() und srand()
#include <time.h> // für time()
#include <conio.h> // für getch()// globale Variablen
long int anz=0;
long int w[6]; // Array mit 6 Zahlen
int k; // für Zählschleifen
double p[6];
double j;void wuerfeln(void); // UP-Würfeln mit globalen Variablen
void auswerten(void); // UP-Auswerten mit globalen Variablen
void diagramm(void); // UP-Diagramm mit globalen Variablenint main()
{
int wurf;// Initialisieren
for(k=0;k<=5;k++)
{ w[k]=0;
p[k]=0;
}
srand( (unsigned)time( NULL ) ); //Zufallszahlen ermitteln
cout << "Statistische Auswertung zum Würfeln:" << endl << endl;
cout << "Wieviel mal würfeln = ";
cin >> anz;wuerfeln(); // Aufruf des UP-Würfeln
auswerten(); // Aufruf des UP-Auswerten
clrscr() ;
diagramm(); // Aufruf des UP-Diagramm
getchar();
return 0;
}
void wuerfeln(void) // UP-Würfeln beginnt
{for(k=1;k<=anz;k++)
{ w[random(6)]+=1;
}
}// Auswerten und Schreiben auf bs
void auswerten(void) // UP-Auswerten beginnt
{cout.setf(ios:: showpoint);
cout << endl;
for(k=0;k<=5;k++)
{ cout << "Die " << k+1 << " wurde " << w[k] << " mal gewürfelt" << endl;
}
cout << endl;
for(k=0;k<=5;k++)
{ cout << "Die " << k+1 << " wurde mit rel. Häufigkeit von ";
cout << setw(6)<< (double)w[k]/anz << " gewürfelt" << endl;
}
cout << endl;
for(k=0;k<=5;k++)
{ cout << "Die " << k+1 << " wurde mit proz. Häufigkeit von ";
cout << setw(6) << (double)w[k]/anz*100 << " % gewürfelt" << endl;
}
getch();
}// Versuch eines Balkendiagrammes für rel. Häufigkeiten
void diagramm(void) // UP-Diagramm beginnt
{for(k=0;k<=5;k++)
{ p[k]=(double)w[k]/anz;
}
cout.setf(ios:: fixed);
cout << "Grafische Darstellung der Verteilung:" << endl << endl;
for(j=0.5;j>=0.0;j-=0.05)
{ cout << setw(4) << j << " | ";
for(k=0;k<=5;k++)
{ if(p[k]>=j)
{ cout << "x ";
}
else
{ cout << " ";
}
}
cout << endl;
}
cout << " |____________" << endl;
cout << " 1 2 3 4 5 6" << endl;
}So, jetzt hätte ich da ein paar Fragen zu einigen Codes! Was bedeutet denn dieses "cout.setf(ios:: showpoint)" im Anfang des 2. UP? Genauso "cout.setf(ios:: fixed)" im 3. UP?
Und eine letzte Frage: Was bewirkt setw()?
-
msdn?
google?
rtfm!
-
GPC schrieb:
...und ganz unten kommt ein return 0; rein.
Das stimmt definitiv nicht.

-
Warum nicht?
-
return 0 wird in main standardmäßig angenommen:
C++ Final Draft schrieb:
-5- A return statement in main has the effect of leaving the main function (destroying any objects with automatic storage duration) and calling exit with the return value as the argument. If control reaches the end of main without encountering a return statement, the effect is that of executing
return 0;
-
sry jungs.... ich komm einfach nicht weiter.... und das was GPC mir geschrieben hat konnte ich in keinster form verarbeiten.... hat allein 2 tage gebraucht bis ich meine version fertig hatte

und jez geht nichtmal die perfekt
kann vllt einer meinen code mit dem vom gpc kombinieren so wie er gehen sollte? wuerd mich doch interessieren obs geht oder nicht.... nur bin ich zu nub fuer=(
-
Bissl googln hilft immer.

ztu setw: http://www.cplusplus.com/ref/iostream/iomanip/setw.htmlZm Eingabeproblem: Im Grunde musst du nur std::cin.good() überprüfen nach der Eingabe (also if...) und dann halt Fehler ausgeben, eingabe zurücksetzten und neu machen oder wie auch immer du es willst.
-
ju das muss ich.... aber beim besten willen steh ich grade mehr als auf dem schlauch.... hab mich die letzten tage durch millionen seiten und beitraege gewuehlt und so diese eingabe zusammengebastelt.... teilweise weiss ich garnicht was und warum ich das tue aber es funktioniert fast.....
das problem ist das ich meine fehler immer wieder wiederhole... ich dreh mich nur im kreis.... deswegen bin ich jetzt hier.... mit der hoffnung das mir jemand nen echt guten tip gibt den ICH verwerten kann mit meinen kenntnissen... oder das jemand eine mustereingabe bastelt...aber dann bitte mit erklaerung damit ichs versteh sonst hats kein sinn^^
-
Hallo!
Hilft Dir das weiter?
bool ErfrageMesswert( int i , double *pWert) { bool ZahlOk = true ; char input[80], *endptr ; double BufferWert = 0.0 ; cout << setw(2) << i+1 << ". Messwert: "; //Messwertdeklarierung cin >> input; BufferWert = strtod( input , &endptr ); // Rückgabe des Wertes nur, wenn Zahl ok if( *endptr == '\0' ) { // Es wurden keine ungültigen Zeichen im String input gefunden *pWert = BufferWert; } else { cout << "Keine Zahl!" ; ZahlOk = false ; } return ZahlOk ; } int main(int argc, char* argv[]) { int i = 0 ; double m[2] ; // Erfragen der einzelnen Messwerte. Ist eine Eingabe nicht ok, wird // sie erneut abgefragt. for( int i = 0 ; i < 2 ; ) { if( ErfrageMesswert( i, &m[i] ) ) { i++ ; } } getch(); return 0; }