# Thread: help! i need somebody help! not just any...help!!!

1. ## help! i need somebody help! not just any...help!!!

hello all,
I need help with this code,
the compiler says it has conflicting types of functions (scan_b for example)...
thanks again,
Livnat.

Code:
```#include <stdio.h>
#include <math.h>

void scan_b(double  , int , int );
void print_b(double  , int  , int );
void norm_b(double , int , int );
double std_b(double , int , int );
double avg_b(double , int , int );

int main()
{
int k,l;
double c[100][100];
printf("please enter the number of rows and columns");
scanf("&#37;d%d" , &k, &l);
scan_b(c[100][100] ,k,l);
print_b(c[100][100] ,k,l);
norm_b( c[100][100] ,  k,  l);
printf ("the Standard deviation is: %lf" ,std_b( c[100][100] , k,  l));
printf ("the mean value is: %lf" ,avg_b( c[100][100] ,  k,  l));
return 0;
}

void scan_b(double b[100][100] , int i, int j)
{
int m,n;

for (m=0 ; m<i ; m++)
for (n=0 ; n<j ; n++)
scanf("%d" , &(b[m][n]));
}

double avg_b(double b[100][100] , int i, int j)
{
int m,n;
for (m=0 ; m<i ; m++)
for (n=0 ; n<j ; n++)
printf("%d" , &(b[m][n]));
}

void norm_b(double b[100][100] , int i, int j)
{
double sum=0,avg, avg2;
int m,n;

for (m=0 ; m<i ; m++)
for (n=0 ; n<j ; n++)
sum+=b[m][n];

avg=sum/(i*j);
for (m=0 ; m<i ; m++)
for (n=0 ; n<j ; n++)
b[m][n]=b[m][n]-avg;

for (m=0 ; m<i ; m++)
for (n=0 ; n<j ; n++)
sum+=b[m][n]*b[m][n];
avg2=sum/(i*j);

for (m=0 ; m<i ; m++)
double std_b(double b[100][100] , int i, int j);        for (n=0 ; n<j ; n++)
b[m][n]=(b[m][n])/sqrt(avg2);
}

int avg_b(double b[100][100] , int i, int j)
{
double sum=0,avg, avg2;
int m,n;

for (m=0 ; m<i ; m++)
for (n=0 ; n<j ; n++)
sum+=b[m][n];

avg=sum/(i*j);
return avg;
}

double std_b(double b[100][100] , int i, int j);
{
double avg,avg2,sum,std;
int m,n;
for (m=0 ; m<i ; m++)
for (n=0 ; n<j ; n++)
sum+=b[m][n]*b[m][n];

avg2=sum/(i*j);

for (m=0 ; m<i ; m++)
for (n=0 ; n<j ; n++)
sum+=b[m][n];
avg=sum/(i*j);

std=sqrt(avg2-pow(avg,2));
return std;
}```

2. scan_b(c[100][100] ,k,l);
print_b(c[100][100] ,k,l);
Because doing like that passes the element at 100, 100 (which does not exist, btw) to a function which expects an array.
And it's bad practice to strip the names of the arguments from the prototypes.
For example:
void scan_b(double , int , int );
Is better as:
void scan_b(double array, int rows, int columns);

EDIT:
Plus your functions and prototypes does not match.
void scan_b(double , int , int );
void scan_b(double[100][100] , int , int );
Make them match!

3. Didn't we just do this?