
Son unas prácticas de la universidad, los enunciados son estos
2.3.- Escriu un programa que llegeixi els valors del radi de diferents esferes que hi ha en el fitxer binari “10radi_esfera.dat” (les dades són enteres) i calculi el volum de les esferes corresponents. Els resultats s'han de guardar en un fitxer binari anomenat “10vol_esfera.dat” amb una precisió de tres decimals. A priori desconeixem el nombre de valors que hi ha emmagatzemats al fitxer d'entrada.
2.4.- Escriu un programa que llegeixi el volum de les esferes que hi ha en el fitxer binari “10vol_esfera.dat” i mostri el seu contingut per pantalla.
2.3
Código
#include <stdio.h>
#include <math.h>
#define PI 3.141592654
int main()
{
FILE *EsfRad, *EsfVol;
int Radio;
float Volumen;
EsfRad = fopen("10radi_esfera.dat","rb");
if(!EsfRad)
{
printf("Error: No se puede abrir el archivo");
}
else
{
EsfVol = fopen("10vol_esfera.dat","wb");
if(!EsfVol)
{
printf("Error: No se puede abrir el archivo");
}
else
{
while(!feof(EsfRad))
{
fread(&Radio, sizeof(Radio), 1, EsfRad);
Volumen = (float)((4*PI*(pow(Radio,3)))/3);
fwrite(&Volumen, sizeof(Volumen), 1, EsfVol);
}
}
fclose(EsfRad);
fclose(EsfVol);
}
return 0;
}
2.4
Código
#include <stdio.h>
#include <math.h>
#define PI 3.141592654
int main()
{
FILE *EsfRad;
float Volumen;
EsfRad = fopen("10vol_esfera.dat","rb");
if(!EsfRad)
{
printf("Error: No se puede abrir el archivo");
}
else
{
while(!feof(EsfRad))
{
fread(&Volumen, sizeof(Volumen), 1, EsfRad);
printf("Volumen = %.3f\n",Volumen);
}
fclose(EsfRad);
}
return 0;
}
El problema que le veo no es de código (eso creo), sino que con los archivos que nos dan para hacer las pruebas, dos o tres volúmenes salen iguales..

No se si se puede, pero adjunto los archivos *.dat por si alguien lo puede/quiere revisar

Saludos
Link (10radi_esfera.dat): http://www.mediafire.com/?jdangsbyw9ric1u


 
  




 Autor
 Autor
		



 En línea
									En línea
								




 
						