I think there's bug in my program
When I put in letter it prints 0.
but when i put in numbers it says core error.
what is wrong with this program?
/* Program that utilizes simple functions illustrating call-by-reference and call-by-valye */
#include <stdio.h>
void swap(double*, double*);
int read5(double*, double*, double*, double*, double*);
double sort5(double*, double*, double*, double*, double*);
double print5(double*, double*, double*, double*, double*);
int main(void)
{ /* begin main */
/* Declaration */
double z, z1, z2, z3, z4;
int checknum = 1;
/* Check Scanf */
while(checknum > 0)
{ /* start while */
if (checknum == 0)
{ /* begin if */
printf("Ends Program");
checknum = -1;
} /* end if */
else
{ /* begin else */
checknum = read5(&z, &z1, &z2, &z3, &z4);
sort5(&z, &z1, &z2, &z3, &z4);
print5(&z, &z1, &z2, &z3, &z4);
} /* end else */
} /* end while */
}
int read5(double *i, double *j, double *k, double *l, double *m)
{
int check;
check = scanf("%lf%lf%lf%lf%lf", *i, *j, *k, *l, *m);
return check;
} /* end read5 */
double sort5(double *u, double *v, double *w, double *x, double *y)
{
int index = 1;
if(*u > *v)
{
swap(u, v);
index = 2;
}
if(*u > *w)
{
swap(u, w);
}
if(*v > *w)
{
swap(v, w);
}
if(*w > *x)
{
swap(w, x);
}
}
double print5(double *i, double *j, double *k, double *l, double *m)
{
printf("%lf %lf %lf %lf %lf", *i, *j, *k, *l, *m);
}
void swap(double *largenum, double *smallnum)
{
int tmp;
tmp = *largenum;
*largenum = *smallnum;
*smallnum = tmp;
}