habe eine knifflige Aufgabe bekommen und kann Sie nicht lösen bitte helfen

Evola

Grünschnabel
Hallo

ich bin och ein ziemlicher Anfänger in C

ich habe da eine Aufgabe bekommen und kann sie nicht knacken ...ich soll von 20 Zahlen die der user eingeben muss ein Programm schreiben das mir die Standardabweichung und den Mittelwert ausgibt und weiters soll das Programm noch die Zahlen Angeben die doppelt eingegeben wurden...wenn zum Beispiel eine 4 drei Mal eingetippt wurde soll das Programm schreiben die 4 wurde 3 Mal eingetippt usw...ich hoffe mir kann jemand helfen ich bin schon mit meinen Nerven am Ende

Mfg
 
Code:
int zahlen[21];
double mittel=0;
for(int i=0;i<20;i++)
{
 cout<<i<<". Zahl:"<<flush;
 cin>>zahl[i];
 mittel+=zahl[i];
 mittel/=2;
}
Das wäre schon mal der Anfang.
 
Du musst halt entweder bei jedem Schleifendurchgang dein Array (zahlen[21]) durchgehen (z.b mit einer for-schleife) und jede Zahl mit der eingegebenen vergleichen oder das Array erst nach der gesamten Eingabe überprüfen und doppelte Zahlen nochmal eingeben lassen.

2. Möglichkeit (einfach):
Code:
	for(i = 0; i < ANZ-1; i++) {
		for(j = i+1; j < ANZ; j++) {
			if(zahlen[i] == zahlen[j]) {
				cout << "Die Zahl " << zahlen[j] << " wurde mehr als einmal eingegeben\n";
				cout << "Bitte geben sie eine andere Zahl ein: ";
				cin >> zahlen[j];
				i = -1;
				break;
			}
		}
	}
 
Wie meinst du das? Aus einem Array den größten und den kleinsten Wert?
Code:
int iMin=0, iMax=0;
for( int i=0; i < sizeof(array); i++ ) {
  if( iMax < array[i]) iMax = array[i];
}
iMin = iMax;
for( int i=0; i < sizeof(array); i++) {
  if(iMin > array[i]) iMin = array[i];
}

cout << "Größter Wert: " << iMax << "\n";
cout << "Kleinster Wert: " << iMin;

Oder hab ich dich falsch verstanden?
 
mittel/=2;
des ist falsch

Man muss alle Zahlen zam zählen und dann durch deren Anzahl teilen !

Die Varianz bzw. Standard Abweichung berächnet sich ja ähnlich indem du des gleiche für die Quadrate der Zahlen machst und dann sum(x^2) - (sum(x))^2
 
basd hat gesagt.:
mittel/=2;
des ist falsch

Man muss alle Zahlen zam zählen und dann durch deren Anzahl teilen !

Die Varianz bzw. Standard Abweichung berächnet sich ja ähnlich indem du des gleiche für die Quadrate der Zahlen machst und dann sum(x^2) - (sum(x))^2

Hab ich mir auch schon gedacht! War aber so müde dass ich net sicher war ...
 
Hi ich hab nun alles super gelöst vielen Dank nur habe ich noch ein kleines Problem:

ich lese zum Beispiel 4 Zahlen ein: 1 1 2 3

nun sortiere ich die Zahlen mit bubblesort und dannn möchte ich gerne dass die Zahlen wie folgt ausgegeben werden:

Zahl 1 wurde 2 Mal eingegeben
Zahl2 wurde 1 Mal eingegeben usw.
Code:
for(i=0;i<x;i++)
	{
		cout<<zahlen[i]<<",";
	}

	int anzahl1=x;
	bool gleich = true;
	while (gleich)
	{
		gleich=false;

	for (i=0;i<anzahl1;i++)
	{
		if(zahlen[i]==zahlen[i+1])
		{
		
		gleich=true;
		}
	}

	anzahl1--;
	
	}
	cout<<"\n"<<"Zahl"<<"    "<<zahlen[i]<<"      "<<i+1<<"      Mal";

so habe ich den Code gestaltet aber der net so richtig!

Ich weiß nun nicht was daran so falsch ist?

Villeicht kann mir ja jemand helfen

Greez
 
Zurück