008
29.04.2006, 14:54 Uhr
Frido
|
Ja gut aber das Programm ist nicht lauffähig jedenfalls auf meinem nicht
Hier nochmal der Verbesserte Code:
Code: |
# include <stdio.h> # include <stdlib.h> # include <malloc.h>
/**Define´s**********************************/
# define MAX_TEMP 3
/**Funktion main.c***************************/
int main(int argc, char *argv[]){
double *Luftdruck; double **Temperatur; int Tage, zusatz; char Zeichen; int i,u,o = 0; double mittel_Temp = 0; double mittel_LD = 0;
printf("Wieviele Tage einlesen: "); scanf("%i",&Tage); fflush(stdin);
/**Speicherreservierung**********************/
Luftdruck = (double*)malloc(Tage * sizeof(double)); if (Luftdruck == NULL){ printf("ERROR. Kein Speicher fuer Luftdruck\n"); exit(1); } Temperatur = (double**)malloc(Tage * sizeof(double*)); if (Temperatur == NULL){ printf("ERROR. Kein Speicher fuer Temperatur Tage\n"); exit(1); } for(i = 0;i <= Tage; i++){ Temperatur[i] = (double*)malloc(MAX_TEMP * sizeof(double)); if (Temperatur[i] == NULL){ printf("ERROR. Kein Speicher fuer Temperatur Werte\n"); exit(1); } }
/**Werte Eingeben****************************/
for(i = 0; i <= Tage-1; i++){ printf("Tag %i\n",i+1); for(u = 0; u <= 2; u++){ printf("Temperatur %i: ",u+1); scanf("%lf",&Temperatur[i][u]); fflush(stdin); } printf("Luftdruck: "); scanf("%lf",&Luftdruck[i]); fflush(stdin); }
/**Durchschnittsberechnungen*****************/
printf("Druchschnittswert des Luftdrucks: "); for(i = 0; i <= Tage-1; i++){ mittel_LD += Luftdruck[i]; } mittel_LD = mittel_LD / Tage; printf("%lf\n",mittel_LD);
printf("Durchschnittswert der Temperatur: "); for(i = 0; i <= Tage-1; i++){ for(u = 0; u < 3; u++){ mittel_Temp += Temperatur[i][u]; } } mittel_Temp = mittel_Temp / (Tage * 3); printf("%lf\n",mittel_Temp);
/**Schleife für Wiederholungen****************/ while(o == 0){ printf("Neue Tage [J/N]: "); Zeichen = getc(stdin);
if((Zeichen == 'J')||(Zeichen == 'j')){ printf("Wieviel Tage zusätzlich: "); scanf("%i",&zusatz); fflush(stdin);
Luftdruck = (double*)realloc(Luftdruck,_msize(Luftdruck)+zusatz * sizeof(double)); if (Luftdruck == NULL){ printf("ERROR. Kein Speicher fuer Luftdruck\n"); exit(1); } Temperatur = (double**)realloc(Temperatur,_msize(Temperatur)+zusatz * sizeof(double*)); if (Temperatur == NULL){ printf("ERROR. Kein Speicher fuer Temperatur Tage\n"); exit(1); } for(i = Tage ;i < (Tage + zusatz); i++){ Temperatur[i] = (double*)realloc(Temperatur,_msize(Temperatur)+MAX_TEMP * sizeof(double)); if (Temperatur[i] == NULL){ printf("ERROR. Kein Speicher fuer Temperatur Werte\n"); exit(1); } } for(i = Tage ; i < (Tage + zusatz); i++){ printf("Tage %i: \n",i+1); for(u = 0; u <= 2; u++){ printf("Temperatur %i: ",Tage+1); scanf("%lf",&Temperatur[i][u]); fflush(stdin); } printf("Luftdruck: "); scanf("%lf",&Luftdruck[i]); fflush(stdin); } Tage += zusatz;
mittel_LD = 0; mittel_Temp = 0;
printf("Druchschnittswert des Luftdrucks: "); for(i = 0; i <= Tage-1; i++){ mittel_LD += Luftdruck[i]; } mittel_LD = mittel_LD /Tage; printf("%lf\n",mittel_LD);
printf("Durchschnittswert der Temperatur: "); for(i = 0; i <= Tage-1; i++){ for(u = 0; u < 3; u++){ mittel_Temp += Temperatur[i][u]; } } mittel_Temp = mittel_Temp / (Tage * 3); printf("%lf\n",mittel_Temp); } else{ o++; } }
/**Ende und Speicher freigeben***************/ printf("Programm ENDE\n");
free(Luftdruck);
for(i = 0; i < Tage; i++){ free(Temperatur[i]); } free(Temperatur); return(0); }
|
-- http://spielwelt14.monstersgame.net/?ac=vid&vid=28103555 |