So Im pretty new to C programming and having a lot of troubl

So I\'m pretty new to C programming and having a lot of trouble getting this to work. I need to read in a file that has data on it (couple lines in sets of 2\'s) and I need to use that data to print out the perimeter and area of a polygon within a circle. My professor didn\'t really do a good job of setting us up so I\'m having trouble debugging my work. This is what I have wrote so far.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define INPUT_FILE \"lab3.dat\"
#define ANSWER_FILE \"lab3.txt\"

int main(void)
{
   double nsides;
   double radius;
   double perimeter;
   double area;
   FILE* my_data;
   FILE* out_file;
   my_data = fopen(INPUT_FILE, \"r\");
   if(my_data == NULL)
   {
  
       printf(\"Error on opening the data file\ \");
   }
   out_file = fopen(ANSWER_FILE,\"w\")
   if(out_file == NULL)
   {   
       printf(\"Error on opening the output file\ \");
   }
   perimeter = 2*nsides*radius*sin(M_PI/nsides);
   area = 0.5*nsides*(radius*radius)*sin((2*M_PI)/nsides);


   fprintf(ANSWER_FILE, \"\ Nima Sarrafzadeh. Lab 3.\ \ \");
   fprintf(ANSWER_FILE, \"            Number      Perimeter      Area Of \ \");
   fprintf(ANSWER_FILE, \" Radius    Of Sides    Of Polygon      Polygon \ \");
   fprintf(ANSWER_FILE, \"--------   --------   ------------   ----------- \ \");
   while((fscanf(my_data, \"%d%f\", &radius, &nsides))==2)
   {
       fprintf(ANSWER_FILE, (\"%d\", radius), \"   \", (\"%d\", nsides), \"   \", (\"%d\", perimeter), \"      \", (\"%d\", area);
   }
   fclose(INPUT_FILE);
   fclose(ANSWER_FILE);
}

Solution

Hi, I have fixed all the issue.

Please find my code.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define INPUT_FILE \"lab3.dat\"
#define ANSWER_FILE \"lab3.txt\"

int main(void)
{
int nsides;
double radius;
double perimeter;
double area;

FILE* my_data;
FILE* out_file;

my_data = fopen(INPUT_FILE, \"r\");
if(my_data == NULL)
{
  
printf(\"Error on opening the data file\ \");
exit(0);
}

out_file = fopen(ANSWER_FILE,\"w\");
if(out_file == NULL)
{   
printf(\"Error on opening the output file\ \");
exit(0);
}

// now reading number of sides and radius value from file
if((fscanf(my_data, \"%d%lf\", &nsides, &radius))!=2)
{
printf(\"Data is not available in file\ \");
exit(0);
}

perimeter = 2*nsides*radius*sin(M_PI/nsides);
area = 0.5*nsides*(radius*radius)*sin((2*M_PI)/nsides);

fprintf(out_file, \"\ Nima Sarrafzadeh. Lab 3.\ \ \");
fprintf(out_file, \" Number Perimeter Area Of \ \");
fprintf(out_file, \" Radius Of Sides Of Polygon Polygon \ \");
fprintf(out_file, \"-------- -------- ------------ ----------- \ \");

fprintf(out_file, \"%d %lf %lf %lf\",nsides, radius, perimeter, area);
  

fclose(my_data);
fclose(out_file);
}

######## lab3.dat ########

5
4.5

######## output: lab3.txt ##############


Nima Sarrafzadeh. Lab 3.

Number Perimeter Area Of
Radius Of Sides Of Polygon Polygon
-------- -------- ------------ -----------
5 4.500000 26.450336 48.147236

So I\'m pretty new to C programming and having a lot of trouble getting this to work. I need to read in a file that has data on it (couple lines in sets of 2\'s
So I\'m pretty new to C programming and having a lot of trouble getting this to work. I need to read in a file that has data on it (couple lines in sets of 2\'s

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site