- Tema Autor
- #1
hola comunidad, nesesito ayuda, hago un programa en lenguaje c y lo que tengo que hacer, es calcular la media (varianza me parece) y la desviacion estandar, pretendia hacer:
ingreo un numero n de datos, despues hacer un ciclo for para ingresar los datos, y asi sumarlos y sacar la media, y eso los complete, nomas me falta la desviacion estandar, y queria hacer que mientrs yo ingresaba los datos inyectar dicho datos en una arreiglo unidimensional y depsues ya sumarlo para despues llamar ese arreiglo para poder calcular la desviacion, mi problema esta en que tengo errores con mi arreiglo aqui les dejo el codigo
#include <stdio.h>
#include <math.h>
main()
{
int n;
float suma = 0;
int x;
float media;
float ld;
float de;
double des =0;
int y;
double pow;
float dato;
int w= n+1;
printf("cuantos numeros introduciras.\n");
scanf("%d", &n);
for (x = 1; x <=n; x++){
printf("Introduce un valor.\n");
scanf("%f", &dato);
int ld[w] = dato;
suma = suma + dato;
}
media = (suma / n);
for(y=1; y<=n; y++)
{
des = (pow(ld[w] - media), double 2.0f ) + 1.0f;
}
de = pow(double(suma * des) / (n-1.0f), double 0.5f );
printf("La media es: %f \n", media);
system("pause");
return 0;
}
y mis errores son
In function `main':
21 variable-sized object may not be initialized
28 subscripted value is neither array nor pointer
28 called object is not a function
28 syntax error before "double"
30 syntax error before "double"
no entiendo como puedo hacer eso del arreiglo, ya que, ingreso datos en el arreiglo y luego es suma= suma + dato y asi repitiendo el ciclo for, y depsues a la hora de calcular mi desviacion pues voy a querer llamar al arreiglo para que el dato uno se reste con la media y se eleve el cuadrado y asi con el dato dos, y asi consecutivamente, espero haberme explicado, como queira sigo intentando
ingreo un numero n de datos, despues hacer un ciclo for para ingresar los datos, y asi sumarlos y sacar la media, y eso los complete, nomas me falta la desviacion estandar, y queria hacer que mientrs yo ingresaba los datos inyectar dicho datos en una arreiglo unidimensional y depsues ya sumarlo para despues llamar ese arreiglo para poder calcular la desviacion, mi problema esta en que tengo errores con mi arreiglo aqui les dejo el codigo
#include <stdio.h>
#include <math.h>
main()
{
int n;
float suma = 0;
int x;
float media;
float ld;
float de;
double des =0;
int y;
double pow;
float dato;
int w= n+1;
printf("cuantos numeros introduciras.\n");
scanf("%d", &n);
for (x = 1; x <=n; x++){
printf("Introduce un valor.\n");
scanf("%f", &dato);
int ld[w] = dato;
suma = suma + dato;
}
media = (suma / n);
for(y=1; y<=n; y++)
{
des = (pow(ld[w] - media), double 2.0f ) + 1.0f;
}
de = pow(double(suma * des) / (n-1.0f), double 0.5f );
printf("La media es: %f \n", media);
system("pause");
return 0;
}
y mis errores son
In function `main':
21 variable-sized object may not be initialized
28 subscripted value is neither array nor pointer
28 called object is not a function
28 syntax error before "double"
30 syntax error before "double"
no entiendo como puedo hacer eso del arreiglo, ya que, ingreso datos en el arreiglo y luego es suma= suma + dato y asi repitiendo el ciclo for, y depsues a la hora de calcular mi desviacion pues voy a querer llamar al arreiglo para que el dato uno se reste con la media y se eleve el cuadrado y asi con el dato dos, y asi consecutivamente, espero haberme explicado, como queira sigo intentando