#include <stdio.h>#include <string.h>struct puntos{float x;float y;};struct circulo{float x_1;float y_1;float r;int i;};struct rectangulo{float p1_x;float p1_y;float p2_x;float p2_y;int i;}; main(){struct puntos punt[29];struct circulo circ[29];struct rectangulo rect[29];char tipo_figura,espacio;int fin_datos=1,i=0,j=0,k=0;//i pertenece a rectangulo,j pertenece a los circulos y el k pertenese a la posicion de los puntosFILE *fp;fp=fopen("figuras.txt","r");while(!feof(fp)){ if(fin_datos==1){//no entrara cuando le cambie el valor a la variable fin_datos y se la cambiare cuando se encuentre con el signo mas fscanf(fp,"%c",&tipo_figura);//escanea el tipo de figura if(tipo_figura=='r'){//si el tipo de figura es rectangulo que solo lea cuatro puntos fscanf(fp," %f %f %f %f\n",&rect[i].p1_x,&rect[i].p1_y,&rect[i].p2_x,&rect[i].p2_y);//imprime los cuatro numeros que nesesito i++; } if(tipo_figura=='c'){//si la figura es un circulo que solo lea tres fscanf(fp," %f %f %f\n",&circ[j].x_1,&circ[j].y_1,&circ[j].r); j++; } if(tipo_figura=='+'){// fin_datos==0; } } if(fin_datos==0){//al cambiar fin_datos de 1 a 0 se avisa para que comienze a leer y almacenar los puntos fscanf(fp,"%f %f",&punt[k].x,&punt[k].y); k++; }}printf("%.2f",punt[2].x); }