I keep executing this program and the average in the function does'nt print as a float..
#include <stdio.h>
#define MAX 20

void readarray (int [], int);
void printarray (int [], int);
int findleast (int [], int);
int findlarge (int[], int);
float findavg (int[], int);

main()
{
int array[MAX], large, least, num;
float average;

scanf ("%d",&num);

if (num!=' ' || num!=0 && num<21){
readarray (array,num);
printarray (array,num);
least = findleast (array, num);
large = findlarge (array,num);
average = findavg (array,num);
}

printf ("least = %d\n",least);
printf ("largest = %d\n",large);
printf ("average = %d\n",average);

return 0;

}

void readarray (int farray[],int fnum){

int count = 0;

do{
scanf("%d",&farray[count]);
count++;
} while (farray[count]!=' ' && count< fnum);
}

void printarray (int farray[],int fnum){

int count;

for (count = 0;count < (fnum); count++)
printf ("%d \n",farray[count]);
}

int findleast (int farray[],int fnum){

int count, fleast;

fleast = farray[0];

for (count = 0; count < (fnum); count++){
if (farray[count]<fleast)
fleast = farray[count];
}

return fleast;
}

int findlarge (int farray[],int fnum){

int count, flargest;

flargest = farray[0];

for (count = 0; count < (fnum); count++){
if (farray[count]>flargest)
flargest = farray[count];
}

return flargest;
}

float findavg(int farray[],int fnum){

int count, sum = 0;

for(count = 0; count < (fnum-1);count++)
sum = sum + farray[count];
/* right here*/ printf ("average = %f\n" (sum/fnum));
printf ("sum = %d\n",sum);
printf ("fnum = %d\n",fnum);


return (sum/fnum);
}