Hallo zusammen ich bin dabei mich auf eine kommende Klausur vorzubereiten. In diesem Programm sollen 10 Fehler sein, wovon ich bereits 9 gefunden habe. Daher erscheinen also auch manche Stellen als fehlerfrei, also bitte nicht wundern. Nun suche ich allerdings schon hartnäckig seit einer Weile den 10. Fehler. Ich vermute folgende Geschichte, p ist ja als Zeiger deklariert, in einer Zeile wird dann allerdings p=a; gesagt, der Compiler meckert aber nicht, und in der Zeile mit dem
PHP-Code:
scanf("%lf",p++);
kommt mir irgendetwas spanisch vor, p ist ja nicht als variable deklariert und ist es möglich innerhalb des scanf-Befehls irgendetwas hochzählen zu lassen ? Das ergibt für mich keinen Sinn. Würde mich freuen wenn jemand helfen kann.
Liebe Grüße Marcel
PHP-Code:
#include<stdlib.h> // #include<stdlib.h> fehlt - 1. Fehler
#include<stdio.h> // #include<stdio.h> - 2. Fehler
#include<math.h>
#define DIM 30 // #define DIM 30 - 3. Fehler
/* Mittelwerter und der Streuung von Messungen*/
int main()
{ int i,n;
double a[DIM],s1,s2,mw,str,*p;
printf("\nEingabe von n ");
scanf("%d",&n); // scanf("%d",&n); oder scanf("%i",&n); - 4. Fehler
if (n>DIM)
{ fprintf(stderr,"Die Dimension ist zu gross"); // fprintf(stderr,"Die Dimension ist zu gross"); - 5. Fehler
exit(2);
}
p=a;
for (i=0;i<n;i++)
{ printf("\nEingabe von a[%2d] ",i); // printf("\nEingabe von a[%2d] ",i); - 6. Fehler
scanf("%lf",p++);
}
s1=s2=0;
for (i=0;i<n;i++)
{ s1+=a[i];
s2+=a[i]*a[i]; // s2+=a[i]*a[i]; - 7. Fehler
}
mw=s1/n; // mw=s1/n; - 8. Fehler
str=sqrt((s2-n*mw*mw)/(n-1)); // str=sqrt((s2-n*mw*mw)/(n-1)); - 9. Fehler
printf("\nMittelwert = %lf",mw);
printf("\nStreuung = %lf",str);
return 0;
}