below is the code that gives me correct answers. I don't know how to move the calculate_area function out of get_input and into main.
Code:
#include <stdio.h>
#include <math.h>
#define FILENAME "input.txt"
void get_input(FILE *fp);
float calculate_area();
float triangle_area();
float square_area();
float trapezoid_area();
void output_area(FILE *fp);
int num_data_pts=0, current_shape,j;
float a, b, c;
FILE *fp;
int main (void)
{
float area;
fp=fopen(FILENAME, "r");
get_input(fp);
system("pause");
return 0;
}
void get_input(FILE *fp)
{
float area;
if(fp==NULL)
printf("Error opening input file. \n");
else
{
fscanf(fp, "%d", &num_data_pts);
for(j=1;j<=num_data_pts; j++)
{ fscanf(fp, "%d",¤t_shape);
switch(current_shape)
{
case 3:
fscanf(fp, "%f", &c);
case 1:
fscanf(fp, "%f", &b);
case 2:
fscanf(fp, "%f", &a);
break;
}
area=calculate_area();
printf("%d,%f \n", current_shape, area );
}
}
return;
}
float triangle_area()
{
float area;
area=0.5*a*b;
return area;
}
float square_area()
{
float area;
area=a*a;
return area;
}
float trapezoid_area()
{
float area;
area=0.5*c*(a+b);
return area;
}
float calculate_area()
{
int z;
switch(current_shape)
{
case 1:
z=triangle_area();
break;
case 2:
z=square_area();
break;
case 3:
z=trapezoid_area();
break;
}
return z;
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/