cześć,
piszę program liczący średnią i wariancję podanych liczb. kiedy było wszystko w jednym pliku działało ok. to mój pierwszy podział na pliki, więc możliwe że robie jakieś radykalne błędy. bardzo proszę was o zerknięcie na kod i pomoc.
main.c:
#include <stdio.h>
#include <stdlib.h>
int n, k, p;
float * tab;
int i = 0;
float arytmetyczna, wariancja;
float licz_sr();
float licz_war();
void podaj_liczby();
void drukuj();
int main() {
podaj_liczby();
licz_war();
licz_sr();
drukuj();
return 0;
}
gui.c:
#include <stdio.h>
#include <stdlib.h>
void podaj_liczby(int n, int i, float * tab)
{
printf("podaj ile liczb\n");
scanf("%d",&n);
tab = (float*)malloc(n * sizeof(float));
printf("podaj te liczby:\n");
for(i=0; i<n; i++)
{
printf("tab[%d] = ", i);
scanf("%f", &tab[i]);
}
}
void drukuj(int k, float wariancja, float arytmetyczna)
{
printf("1.wariancja\n2.srednia");
scanf("%d",&k);
switch(k)
{
case 1:
printf("%f\n", wariancja);
break;
case 2:
printf("%f\n", arytmetyczna);
break;
}
}
obliczanie.c:
float licz_sr(int i, int n, float arytmetyczna, float wariancja, float * tab)
{
for(i=0, arytmetyczna=0; i<=n ; i++)
arytmetyczna += tab[i];
arytmetyczna /= n;
return arytmetyczna;
}
float licz_war(int i, int n, float arytmetyczna, float wariancja, float * tab)
{
for(i=0, wariancja=0 ;i<n;i++)
wariancja += (tab[i]-arytmetyczna)*(tab[i]-arytmetyczna);
wariancja /= n;
return wariancja;
}
bardzo krótko zajmuję się programowaniem w c i bardzo proszę o pomoc.
oprócz tego muszę jeszcze napisać do tego makefila. czy jest to w ogóle możliwe, jeśli nie mam linuxa i nie mam możliwości zainstalowania virtual boxa?
z góry dziękuję ;)