Problem mit Werteberechnungen

Dieses Thema Problem mit Werteberechnungen im Forum "Windows XP Forum" wurde erstellt von Telle, 16. Sep. 2005.

Thema: Problem mit Werteberechnungen Hi! so ich hab leider nen kleines Problem in meinem Programm. Wäre supi wenn mir da jemand helfen könnte^^ Also...

  1. 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;
    }
     
Die Seite wird geladen...

Problem mit Werteberechnungen - Ähnliche Themen

Forum Datum
SEHR DRINGEND: Probleme bei Upgrade auf Windows 7 Windows Vista Forum 13. Nov. 2016
Problem - Laptop mit angeblich win 10 und win 7 Windows 10 Forum 13. Nov. 2016
Dualboot Windows Uhrzeit Problem Windows 10 Forum 10. Nov. 2016
W10M - Glance Screen & DTTWU Probleme Windows 10 Forum 4. Nov. 2016
probleme mit windows 7 update bitte um hilfe. Windows 7 Forum 4. Nov. 2016