Wiederhoungsanweisung |
Whiss
Mitglied
Dabei seit: 25.11.2015
Beiträge: 29
|
|
Meine Frage:
Es sollen N Messwerte eingelesen und verarbeitet werden. Bei jeder Eingabe soll angegeben werden, der wievielte Messwert eingegeben wird. Nach der Eingabe soll der aktuelle Messwert, der größte Messwert, der kleinste Messwert und der Mittelwert der Messwerte berechnet und angezeigt werden.
Welche Wiederholungsanweisung eignet sich für diese Aufgabe besonders?
Meine Ideen:
#include <string>
using namespace std;
int main(){
int n=10;
int m[n];
int i;
int M_min=0;
int M_max=0;
int M_average=0;
for (i=1;i<=n;i++){
cin >> m[i];
}
for(i=1;i<=n;i++){
if(i==1) {
M_min=m[i];
M_max=m[i];
M_average=m[i];
}
if(i>1){
if(M_min > m[i])
M_min=m[i];
if(M_max < m[i])
M_max=m[i];
M_average=M_average+m[i];
}
}
cout << " Min: "<<M_min;
cout << " Max "<<M_max;
cout << " Average: "<<M_average/n;
}
-------------------------
Es ist aber so falsch, ich habe gehört ich soll ohne arrays arbeiten.
Wie soll ich es dann machen?
Einer hat mir gesagt, es soll so richtig sein:
#include <stdio.h>
#include <stdlib.h>
int main (){
float eingabe;
float summe =0;
float mittelwert;
int zaehler = 0;
float min ;
float max;
do{
printf( "\Bitte geben Sie einen Messwert ein \n \n");
scanf ("%f", & eingabe);
zaehler = zaehler +1;
summe = summe + eingabe;
printf("\n Anzahl der eingegebenen Messwerte:%i \n", zaehler);
printf("\ n Aktueller Messwert:%f \n", eingabe);
if (zaehler == 1) {
max= eingabe ;
min= eingabe;
}
else if (eingabe < min){
min=eingabe;
}
else if ( eingabe > max) {
max= eingabe;
}
printf("\n Minimaler Messwert : %f \n", min);
printf("\n Maximaler Messwert: %f \n", max);
mittelwert= summe/zaehler;
printf("\n Mittelwert: %\n", mittelwert);
}
while (1==1);
}
--------------
Was ist jetzt richtig?
|
|
29.11.2015 20:10 |
|
|
|
RE: Wiederhoungsanweisung |
|
Wenn man die Syntaxfehler behebt (z.B. printf( "\Bitte geben Sie einen Messwert ein \n \n");), ist es richtig, ja.
__________________ Syntax Highlighting fürs Board (Link)
|
|
29.11.2015 20:23 |
|
|
Whiss
Mitglied
Dabei seit: 25.11.2015
Beiträge: 29
|
|
|
29.11.2015 20:37 |
|
|
|
Der erste Code ist richtig so:
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:
31:
32:
33:
|
#include <iostream>
using namespace std;
int main(){
int n=10;
int m[n];
int i;
int M_min=0;
int M_max=0;
int M_average=0;
for (i=0;i<n;i++){ //bei 0 anfangen
cin >> m[i];
}
for(i=0;i<n;i++){
if(i==0) {
M_min=m[i];
M_max=m[i];
M_average=m[i];
}
if(i>0){
if(M_min > m[i])
M_min=m[i];
if(M_max < m[i])
M_max=m[i];
M_average=M_average+m[i];
}
}
M_average /= n; //teilen nicht vergessen
cout << " Min: "<<M_min << endl;
cout << " Max "<<M_max << endl;
cout << " Average: "<<M_average << endl;
} |
|
Da werden aber Arrays verwendet, die du nicht haben wolltest.
und der zweite
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:
31:
32:
33:
34:
|
#include <stdio.h>
#include <stdlib.h>
int main (){
float eingabe;
float summe =0;
float mittelwert;
int zaehler = 0;
float min ;
float max;
do{
printf( "Bitte geben Sie einen Messwert ein \n \n");
scanf ("%f", & eingabe);
zaehler = zaehler +1;
summe = summe + eingabe;
printf("\n Anzahl der eingegebenen Messwerte:%i \n", zaehler);
printf("\n Aktueller Messwert:%f \n", eingabe);
if (zaehler == 1) {
max = eingabe;
min = eingabe;
}
else if (eingabe < min){
min = eingabe;
}
else if ( eingabe > max) {
max = eingabe;
}
printf("\n Minimaler Messwert : %f \n", min);
printf("\n Maximaler Messwert: %f \n", max);
mittelwert= summe/zaehler;
printf("\n Mittelwert: %f\n", mittelwert);
}
while (1==1);
} |
|
__________________ Syntax Highlighting fürs Board (Link)
|
|
29.11.2015 20:51 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Bitte nciht immer im "Theoretische Infromatik" posten. Das hier ist praktische Infiormatik!
|
|
29.11.2015 21:24 |
|
|
Whiss
Mitglied
Dabei seit: 25.11.2015
Beiträge: 29
|
|
Ah okey, das wusste ich nicht.
Beim nächsten mal werde ich das in die praktische Informatik posten.
Aber jetzt kann ich das leider nicht mehr ändern. kannst du mir nun bei dieser Aufgabe helfen?
|
|
29.11.2015 21:32 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Was genau verstehst Du denn nicht an der Aufgabe?
Gruß,
Karlito
|
|
29.11.2015 21:46 |
|
|
Whiss
Mitglied
Dabei seit: 25.11.2015
Beiträge: 29
|
|
Ich verstehe nicht, wie ich das ohne arrays machen soll.
Kannst du mir mal quelltext schreiben, damit ich darauß dann studieren kann?
|
|
29.11.2015 21:54 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Dazu fehlt mir heute leider die Zeit.
Gruß,
Karlito
|
|
29.11.2015 22:03 |
|
|
Whiss
Mitglied
Dabei seit: 25.11.2015
Beiträge: 29
|
|
Schade, könntest du mir morgen so gegen 09:00 Uhr schon schicken?
|
|
29.11.2015 23:03 |
|
|
|