Autor
|
Tema: Ayuda con estructura (Leído 3,171 veces)
|
Mudkipz
Desconectado
Mensajes: 112
Hospice
|
Hola a todos, bueno, tengo que leer los siguientes datos: anio modelo marca costo de automovil tipo sedan costo de automovil tipo pick-up costo de automovil tipo deportivo
pero tengo que usar una estructura y leer esos datos 3 veces, osea para 3 automoviles diferentes. tengo este codigo pero se me hace demasiado largo, y queria ver si hay alguna forma de hacerlo mas corto: #include<stdio.h> struct Auto{ int anio; float sedan, pickup, deportivo; char modelo[100]; char marca[100]; }c1, c2, c3; int main(){ char buffer[100]; //datos del primer auto printf("Introduzca los datos del primer auto:\nanio: "); fgets(buffer ,sizeof(buffer ),stdin ); sscanf(buffer , "%d", &c1. anio); printf("Introduzca el modelo: "); fgets(c1. modelo,sizeof(c1. modelo),stdin ); printf("Introduzca la marca: "); fgets(c1. marca,sizeof(c1. marca),stdin ); printf("Introduzca los precios para sedan, pickup, deportivo:\n"); fgets(buffer ,sizeof(buffer ),stdin ); sscanf(buffer ,"%f",&c1. sedan); fgets(buffer ,sizeof(buffer ),stdin ); sscanf(buffer ,"%f",&c1. pickup); fgets(buffer ,sizeof(buffer ),stdin ); sscanf(buffer ,"%f",&c1. deportivo); //datos del segundo auto printf("Introduzca los datos del segundo auto:\nanio: "); fgets(buffer ,sizeof(buffer ),stdin ); sscanf(buffer , "%d", &c2. anio); printf("Introduzca el modelo: "); fgets(c1. modelo,sizeof(c2. modelo),stdin ); printf("Introduzca la marca: "); fgets(c1. marca,sizeof(c2. marca),stdin ); printf("Introduzca los precios para sedan, pickup, deportivo:\n"); fgets(buffer ,sizeof(buffer ),stdin ); sscanf(buffer ,"%f",&c2. sedan); fgets(buffer ,sizeof(buffer ),stdin ); sscanf(buffer ,"%f",&c2. pickup); fgets(buffer ,sizeof(buffer ),stdin ); sscanf(buffer ,"%f",&c2. deportivo); //datos del tercer auto printf("Introduzca los datos del tercer auto:\nanio: "); fgets(buffer ,sizeof(buffer ),stdin ); sscanf(buffer , "%d", &c3. anio); printf("Introduzca el modelo: "); fgets(c1. modelo,sizeof(c3. modelo),stdin ); printf("Introduzca la marca: "); fgets(c1. marca,sizeof(c3. marca),stdin ); printf("Introduzca los precios para sedan, pickup, deportivo:\n"); fgets(buffer ,sizeof(buffer ),stdin ); sscanf(buffer ,"%f",&c3. sedan); fgets(buffer ,sizeof(buffer ),stdin ); sscanf(buffer ,"%f",&c3. pickup); fgets(buffer ,sizeof(buffer ),stdin ); sscanf(buffer ,"%f",&c3. deportivo); return 0; }
Gracias.
|
|
|
En línea
|
So i herd u liek mudkipz?
|
|
|
Beakman
|
depende lo que quieras hacer con esos datos, si los queres mostrar por pantalla o guardar en un archivo, seria mas fácil declarar una sola estructura y hacer un ciclo, un for de 3, y cargarlos en la misma estructura. y vas devolviendo los datos.
|
|
|
En línea
|
|
|
|
Mr.Blue
|
crear una matriz? de [3]x[X]
algo asi
struct Auto{ int año[3]; float sedan[3], pickup[3], deportivo[3]; char modelo[3][100]; char marca[3][100]; } c1;
Comentario.
float sedan[3], pickup[3], deportivo[3];
esto lo podes tmb modificar sabiendo vos que
sedan pickup deportivo 1 2 3
hacer una matriz
floar algo [3] [3];
|
|
« Última modificación: 21 Noviembre 2010, 05:06 am por Sr.Blanco »
|
En línea
|
|
|
|
Gallu
Desconectado
Mensajes: 247
|
Consejos ... Agrupa el código en funciones a ser posible , de esa manera evitarás tener que repetirlo y el código será más corto y fácil de leer. Usa memoria dinámica siempre que sea posible, no crees que es un desperdicio reservar 100 posiciones para la marca y el modelo ? Espero que este ejemplo te sirva de ayuda #include<stdio.h> #include<stdlib.h> #include<string.h> #define ELEMENTOS 2 #define LIMPIA_BUFFER while(getchar()!='\n'); typedef struct{ int anio; float sedan, pickup, deportivo; char *modelo; char *marca; }type_auto; int main(int elem , char ** args ){ int num_elementos = 0; char buffer[100]; int i = 0; if (args[1] != NULL){ sscanf(args [1],"%d",&num_elementos ); } if(num_elementos > 50 || num_elementos < 1 ){ num_elementos = ELEMENTOS; } type_auto autos[num_elementos]; init_auto(autos, num_elementos); for (i = 0 ; i < num_elementos ; i++){ printf("Introduzca el modelo del auto %d: " , (i + 1)); autos [i ]. modelo = (char*) malloc(strlen(buffer ) * sizeof(char*)); strcpy(autos [i ]. modelo , buffer ); printf("Introduzca la marca del auto %d: ", (i + 1)); autos [i ]. marca = (char*) malloc(strlen(buffer ) * sizeof(char*)); strcpy(autos [i ]. marca , buffer ); printf("Escriba el anio del auto \n"); fscanf(stdin ,"%d",&autos [i ]. anio); LIMPIA_BUFFER; printf("Introduzca los precios para sedan, pickup, deportivo:\n"); fscanf(stdin ,"%f",&autos [i ]. sedan); LIMPIA_BUFFER; fscanf(stdin ,"%f",&autos [i ]. pickup); LIMPIA_BUFFER; fscanf(stdin ,"%f",&autos [i ]. deportivo); LIMPIA_BUFFER; } mostrar_auto(autos, num_elementos); free_auto(autos , num_elementos); printf("\nPresione una tecla para terminar..."); } int init_auto(type_auto *autos , int elementos){ int i = 0; for (i ; i < elementos ; i++){ autos[i].anio = 0; autos[i].sedan = 0; autos[i].pickup = 0; autos[i].deportivo = 0; autos[i].modelo = NULL; autos[i].marca = NULL; } return 0; } int mostrar_auto(type_auto *autos , int elementos){ int i = 0; for (i ; i < elementos ; i++){ printf("\nMarca =%sModelo =%sAnio =%d\nPrecios: Sedan =%f Pickup =%f Deportivo =%f ",autos [i ]. marca,autos [i ]. modelo,autos [i ]. anio, autos[i].sedan, autos[i].pickup, autos[i].deportivo); } return 0; } int free_auto(type_auto *autos , int elementos){ int i = 0; for (i ; i < elementos ; i++){ } return 0; }
|
|
|
En línea
|
Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Ayuda] Fallo de estructura
Programación C/C++
|
jospar
|
3
|
2,525
|
18 Enero 2015, 22:18 pm
por avesudra
|
|
|
ayuda con punteros a estructura
Programación C/C++
|
abaadoon
|
1
|
2,451
|
12 Febrero 2016, 04:49 am
por 0xFer
|
|
|
Ayuda codigo c ++ estructura selectiva + repetitiva
Programación C/C++
|
gleon_01
|
3
|
2,697
|
20 Marzo 2016, 20:07 pm
por gleon_01
|
|
|
Ayuda en la estructura de mi web
Desarrollo Web
|
anfgonzalez
|
7
|
4,302
|
3 Agosto 2016, 08:53 am
por Adrialmend
|
|
|
ayuda con estructura php
PHP
|
xavidenia
|
1
|
2,424
|
3 Octubre 2016, 10:45 am
por xavidenia
|
|