INTRO to C: Write a program cylinder.c that accomplishes the following: Read a l
ID: 3777717 • Letter: I
Question
INTRO to C:
Write a program cylinder.c that accomplishes the following: Read a list of radii and heights from a file(cylinder_input.data). For each pair of values, calculate the cylinder's volume and surface area. Display the results on the screen and save the results to a file.
File: cylinder_input.data
1.5 10.2
2.21 20
3 30.243
55.23 2.2
12.1 45.989
The contents of the output file “cylinder_output.data”
1.500000 10.200000 72.099551 110.269902
2.210000 20.000000 306.877054 308.404496
3.000000 30.243000 855.100680 626.615787
55.230000 2.200000 21082.525775 19929.377237
12.100000 45.989000 21153.127133 4416.305811
Explanation / Answer
#include<stdio.h>
#include<math.h>
//declare and define PIE constant used in calculation of area and volume
#define PIE acos(-1.0)
int main()
{
//input file handler
FILE *in;
//output file handler
FILE *out;
//local variables to hold radii and height
float radius, height;
//local variables for area and volume
float area , volume;
//opne input file for reading
in = fopen("cylinder_input.data","r");
if ( in == NULL)
{
printf("Error! opening file");
// Program exits if file pointer returns NULL.
return -1;
}
//opne output file for writing
out = fopen("cylinder_output.data","w");
if ( out == NULL)
{
printf("Error! opening file");
// Program exits if file pointer returns NULL.
return -1;
}
while(!feof(in))
{
fscanf(in,"%f%f",&radius,&height);
//surface area A=2rh+2r2
area = 2 * PIE * radius * height + 2 * PIE * radius * radius;
//volume of cylinder V=r2h
volume = PIE * radius * radius * height;
//save radius , height ,volume and surface area to the file
fprintf(out,"%f %f %f %f ",radius, height, volume, area);
}
//close input and output files
fclose(in);
fclose(out);
//check to read output data file cylinder_output.data
//opne input file for reading
in = fopen("cylinder_output.data","r");
if ( in == NULL)
{
printf("Error! opening file");
// Program exits if file pointer returns NULL.
return -1;
}
while(!feof(in))
{
fscanf(in,"%f %f %f %f ",&radius, &height, &volume, &area);
printf("%f %f %f %f ",radius, height, volume, area);
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.