lunes, 11 de febrero de 2013

Areas de circulos almacenados en array



/*Programa para calcular áreas de varios circulos, usando 
un bucle while; 
los resultados se almacenan en un array; 
no se especifica el número de círculos; 
se introduce una cadena de caracteres para cada conjunto 
de datos */ 

#include <stdio.h> 
#define PI 3.14159 

float procesar (float radio); 

int main(int argc, char* argv[])
{ 
     int n=0, i = 0; 
 
   struct { 
       char texto[20]; 
       float radio; 
       float area; 
   } circulo[10]; 

   printf("Para PARAR, introduzca FIN en el identificador\n"); 
   printf("\nIdentificador: "); 
   while ((circulo[i].texto[0] !='F') 

                           || (circulo[i].texto[1] != 'I')
                           || (circulo[i].texto[2] != 'N'))
   { 
       i++; 
       printf("Radio = "); 
       scanf("%f", &circulo[i].radio); 

       if (circulo[i].radio < 0) 
          circulo[i].area = 0; 
       else 
          circulo[i].area = procesar(circulo[i].radio); 
   
       printf("\nIdentificador: "); 
       scanf("%s", circulo[i].texto); 

    }//fin de while 
     n=i; 
     printf("\n\nRelacion de resultados\n\n"); 
     for(i = 1; i <= n; ++i)
     { 
          printf("%s\tRadio = %6.2f\tArea = %f\n",                              circulo[i].texto,circulo[i].radio,circulo[i].area); 
  } 
  return 0; 
}//fin de main 

  float procesar(float r) 
  { 
  float a; 
  a = PI * r * r; 
  printf("%f",a); 
  return (a); 
} 

No hay comentarios:

Publicar un comentario