Problem mit Werteberechnungen

  • #1
T

Telle

Guest
Hi!

so ich hab leider nen kleines Problem in meinem Programm.
Wäre supi wenn mir da jemand helfen könnte^^

Also erstmal die Aufgabenstellung:

Lese kontinuierlich Werte ein und gib dann den Durchschnitt, den min und den max Wert der letzten 5 Eingaben aus.
Das Programm wird nach der Eingabe -123 beendet.

Nun hier mein bisheriges Programm:


Code:
#include stdafx.h


int main(int argc, char* argv[])
{
	
	// Variablendeklaration

	int wert[5];
	double durchschnitt;
	int i;
	int min;
	int max;

	

	// Erstellung
	
	printf(\t\t\t   Me\xe1wertanalyse \n\n\n);
	
	printf(\tZur Beendigung des Programmes Bitte -123 eingeben!!!\n\n\n\n);


	do
	{
			printf(Bitte Wert eingeben: );	// Eingabe
			scanf(%i, & wert[4]);
			

			durchschnitt = (wert[0] + wert[1] + wert[2] + wert[3] + wert[4]) /5;	// Berechnung des Durchschnittes
			printf(\n\nDer Durchschnitts betr\x84gt: %lf\n\n, durchschnitt);		// Ausgabe des Durchschnittes

				
				min=0;

				int min = wert[4];

				for(i=1; i<5; i++)		// Herraussuchen des min Wertes
				{
					if(wert[i] <= min)
					{
						min = wert[i];
					}
				}

				printf(min Wert betraegt: %i\n\n, min);	// Ausgabe des min Wertes

			
					max=0;			// Herraussuchen des max Wertes

					int max=wert[4];

					for(i=1; i<5; i++)
					{
						if(wert[i] > max)
						{
							max = wert[i];
						}
					}

					printf(max Wert betraegt: %i\n\n\n\n, max);	// Ausgabe des max Wertes

						
						for(i=0; i<4; i++)	// Array Werte Verschiebung
						{
							wert[i] = wert[i+1];
						}				
	}
	while(wert[4]!=-123);	// Beendigung des Programmes bei der Eingabe von -123 

	

	printf(\n\n\n);


	
	return 0;
}



So nun mein Problem ist, dass die Ersten 5 Eingaben beim Durchschnitt und beim min Wert nur blödsinn ausgben. Das ist ja weil die Variablen irgend nen Wert annehmen wenn nichts initalisiert wurde.
Doch wenn ich alle Arrywerte am Anfang auf Null setzen würde, hätt ich ja immer noch nen Problem mit dem min Wert bei den ersten 5 Eingaben.

Hat da jemand vielleicht ne idee wie ich das hinkriegen könnte?

Schon mal danke im Vorraus XD

baba Tess
 
  • #2
Hab's nicht ausprobiert, aber mit den kleinen Änderungen sollte es jetzt funktionieren.

Code:
#include stdafx.h
#include <limits.h>

int main(int argc, char* argv[])
{
  
  // Variablendeklaration

  int wert[5]= {0, 0, 0, 0, 0};
  double durchschnitt;    
  int cnt= 0;
  int i, min, max;
  bool exit= false;
  const int ABBRUCHCODE= -123;

  // Erstellung
  
  printf(\t\t\t   Me\xe1wertanalyse \n\n\n);
  
  printf(\tZur Beendigung des Programmes bitte %i eingeben!\n\n\n\n, ABBRUCHCODE);

  do
  { 
    printf(Bitte Wert eingeben: );  // Eingabe
    scanf(%i, & wert[4]);

    if(wert[4] == ABBRUCHCODE)
      exit= true;
    else { // Berechnung nur bei gültigem Wert, nicht bei Abbruch
      if(cnt < 5)
        cnt++;
        
      durchschnitt = (wert[0] + wert[1] + wert[2] + wert[3] + wert[4]) / (double)cnt;

      printf(\n\nDer Durchschnitt betr\x84gt: %.8g\n, durchschnitt); // Ausgabe des Durchschnittes

      min= INT_MAX;
      max= INT_MIN;
      for(i=4; i>=5-cnt; --i)
      {
        if(wert[i] < min)
          min= wert[i];
        if(wert[i] > max)
          max= wert[i];
      }
        
      printf(min Wert betr\x84gt: %i\n, min);  // Ausgabe des min Wertes
      printf(max Wert betr\x84gt: %i\n\n\n\n, max);  // Ausgabe des max Wertes
      
      for(i=0; i<4; i++)  // Array-Werte-Verschiebung
      {
        wert[i]= wert[i+1];
      }
    }
  }
  while(!exit); // Beendigung des Programmes bei der Eingabe des Abbruch-Wertes 

  printf(\n\n\n);
  
  return 0;
}
 
Thema:

Problem mit Werteberechnungen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben