![]() |
| | #1 |
| Registered User Join Date: May 2008
Posts: 29
| 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("%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;
}
Last edited by Livnat; 07-13-2008 at 01:19 PM. |
| Livnat is offline | |
| | #2 | |
| Mysterious C++ User Join Date: Oct 2007
Posts: 14,099
| 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!
__________________ Using: Microsoft Windows™ 7 Professional (x64), Microsoft Visual Studio™ 2008 Team System I dedicated my life to helping others. This is only a small sample of what they said: "Thanks Elysia. You're a programming master! How the hell do you know every thing?" Quoted... at least once. Quote:
Last edited by Elysia; 07-13-2008 at 01:37 PM. | |
| Elysia is offline | |
| | #3 |
| and the hat of vanishing Join Date: Aug 2001 Location: The edge of the known universe
Posts: 21,214
| Didn't we just do this?
__________________ If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut. Up to 8Mb PlusNet broadband from only £5.99 a month! |
| Salem is offline | |
![]() |
| Tags |
| arrays, functions |
| Thread Tools | |
| Display Modes | |
|