Masz funkcję: void losuj() którą zdefiniowałeś jako bezargumentowa (bo nie ma żadnych argumentów w nawiasie) a przekazujesz jej losuj(tab); zmienną tab. Dla funkcji pokaz(tab) masz identyczną sytuację. srednia(tab) to samo.
Poprawiony program, który sie kompiluje (ale nie wiem czy wartości liczbowe poprawne):
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 3
void losuj(int [])
{
int tab[SIZE];
int i;
srand(time(0));
for(i=0; i<3; i++)
{
tab[i]=-100 + rand()%201;
}
}
void pokaz(int [])
{
int tab[SIZE];
int i;
for(i=0; i<3; i++)
{
printf("%d\n",tab[i]);
}
}
int srednia(int [])
{
int tab[SIZE];
int i,a;
int wynik=tab[0];
for(i=0; i<3; i++)
{
printf("%d\n", tab[i]);
wynik=wynik+tab[i];
printf("%d\n", wynik);
}
}
int main()
{
int tab[SIZE];
losuj(tab);
pokaz(tab);
printf("\n\n\n");
srednia(tab);
return 0;
}
Jako argument przekazana zostaje tablica int [].