Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Programm für Min,Max und Mittelwert (C) » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen Programm für Min,Max und Mittelwert (C)
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Lars
unregistriert
Programm für Min,Max und Mittelwert (C) Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hi, ich bin's nochmal. Mittlerweile alle Aufgaben geschafft, bis auf eine, an der ich mittlerweile einige Zeit sitze. Aufgabe befindet sich im Anhang.

Meine Ideen:
Mein Code:
#include <stdio.h>


int main()
{
int eingabe;
int max;
int min;
int mittel;
do
{
printf("Bitte gib Zahlen ein! ");
scanf("%u", &eingabe);

if (eingabe > max) max = eingabe;
if (eingabe < min) min = eingabe;

}
while(eingabe<100 && eingabe>0);
printf("Max: %i -- Min: %i", max, min);
return 0;
}

Das erste Problem ist folgendes:
max und min müssten erstmal den wert eingabe annehmen, das funktioniert aber nicht, denn sonst würden sie das immer wieder in der schleife tun. Zz. Nimmt min bzw. max auch immer den Wert an, wenn die Schleife abgebrochen wird, da sie ja noch einmal durchläuft. Wie kann ich das ändern (also die Schleife abbrechen lassen). Und wie ich den Mittelwert realisieren soll weiß ich überhaupt nicht. Arrays hatten wir nicht großartig bis jetzt.

Lars hat dieses Bild (verkleinerte Version) angehängt:
a3.png

06.12.2015 12:54
Lars
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

#include <stdio.h>


int main()
{
int eingabe;
int max;
int min;
int mittel;
int i=0;
int f=0;
do
{
printf("Bitte gib Zahlen ein! ");
scanf("%u", &eingabe);

while(i==0)
{
min=eingabe;
max=eingabe;
i++;
};
if (eingabe > max) max = eingabe;
if (eingabe < min) min = eingabe;

}
while(eingabe<100 && eingabe>0);
printf("Max: %i -- Min: %i", max, min);
return 0;
}
Damit ist ein Problem behoben, aber ich weiß nicht, wie ich das Programm bei einer falschen Zahl direkt abbrechen lassen kann. break will nicht funktionieren.
06.12.2015 14:37
Lars
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

#include <stdio.h>


int main()
{
int eingabe;
int max;
int min;
int mittel;
int i=0;
int f=0;
do
{
printf("Bitte gib Zahlen ein! ");
scanf("%u", &eingabe);
if(eingabe<0 || eingabe>100) break;
while(i==0)
{
min=eingabe;
max=eingabe;
i++;
};
if (eingabe > max) max = eingabe;
if (eingabe < min) min = eingabe;
}
while(eingabe<100 && eingabe>0);
printf("Max: %i -- Min: %i", max, min);
return 0;
}
Ok, max und min geht nun, wie realiser ich jetzt den Mittelwert`?!
06.12.2015 15:10
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Toll, wie sich die Probleme von selbst lösen, während man weg ist smile
Ich greife trotzdem mal ein:
while(i==0) wird genau einmal durchlaufen, da du das i erhöhst. Folglich solltest das das while durch ein if ersetzen. Das macht es viel leserlicher.
Das i++ noch eine Zeile tiefer schieben und schon hast du die Gesamtzahl der Eingaben, durch die du für den Durchschnitt ja teilen musst.

edit:
ach, nutze doch bitte code tags, das macht die Sache viel leserlicher
[code]Quellcode hier[/code]

__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 06.12.2015 15:20.

06.12.2015 15:19 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Lars
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich hab mich verschrieben, es ist der empirische Mittelwert gesucht. Deswegen bin ich am Verzweifeln...
verwirrt
Ich erbitte deine Hilfe smile
06.12.2015 15:35
Lars
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Also der empirische Mittelwert der Zahlen, die ich eingebe. So verstehe ich es aus der Aufgabe heraus, sorry, dass mit dem Code hab ich total verpeilt.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
#include <stdio.h>


int main()
{
	int eingabe;
	int max;
	int min;
	int mittel;
	int i=0;
	do
	{
		printf("Bitte gib Zahlen von 1-99 ein. ");
		scanf("%u", &eingabe);
		if(eingabe<0 || eingabe>100) break;
		if(i==0)
		{
			min=eingabe;
			max=eingabe;
			i++;
		};
		if (eingabe > max) max = eingabe; 
        if (eingabe < min) min = eingabe; 
	}
	while(eingabe<100 && eingabe>0);
	printf("Max: %i -- Min: %i", max, min); 
    return 0; 
}
06.12.2015 15:38
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
#include <stdio.h>

int main()
{
	int eingabe;
	int max;
	int min;
	int sum;
	int i=0;
	do
	{
		printf("Bitte gib Zahlen von 1-99 ein. ");
		scanf("%u", &eingabe);
		if(eingabe<0 || eingabe>100) break;
		if(i==0)
		{
			min=eingabe;
			max=eingabe;
		};
		i++; //Anzahl der Eingaben
		if (eingabe > max) max = eingabe; 
        if (eingabe < min) min = eingabe;
        sum += eingabe; //Summe aller Eingaben ausrechnen
	}
	while(1 == 1); //du brichst bereits oben mit break ab, kannst du dir hier sparen
	printf("Max: %i -- Min: %i -- Durchschnitt: %.3g\n", max, min, (float)sum/i); 
    return 0; 
}


__________________
Syntax Highlighting fürs Board (Link)
06.12.2015 15:53 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Lars
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Du hast mal wieder meinen Tag gerettet. Gott
Ich danke dir eulerscheZahl, du machst deinem Titel alle Ehre smile . Ich hab's jetzt verstanden, ich glaub ich war schon auf dem richtigen Weg, aber hätte sich noch ziehen können, bis ich das richtige gehabt hätte.
06.12.2015 16:13
Baumstruktur | Brettstruktur
Gehe zu:
Informatiker Board » Themengebiete » Theoretische Informatik » Programm für Min,Max und Mittelwert (C)