Título: ayuda con mi programa struct c Publicado por: akiranakamure en 12 Marzo 2013, 07:01 am mi codigo ya funciona pero le quise poner un menu y es cuando ya no supe como en algo falle miserablemente si pueden decirme en que me falla porque el copilador me manda muchos errores
#include <stdio.h> #include <stdlib.h> #include <string.h> struct nombreCompleto { char nombre[50]; char apPat[50]; char apMat[50]; }; struct alumno{ char titulo; int codebar; struct nombreCompleto artista; float precio; }; void addalbum(); void ordenar(); void menor(); void mayor(); void salir(); void about(); void info(); int main() { int a; int i,j,temp; struct alumno grupo[3]; struct alumno aux; do { system("color 0a"); printf("Main\n"); printf("discography Mikael \169\184\n"); printf("1.add album\n"); printf("2.album sort alphabetically\n"); printf("3.Sort Ascending Order form prices\n"); printf("4.price in descending order\n"); printf("5.exit the application\n"); printf("6.about program\n"); printf("7.source code gpl\n"); printf("Opcion\n"); scanf("%d", &a); switch (a) { case 1: addalbum(); break; case 2: ordenar(); break; case 3: menor(); break; case 4: mayor(); break; case 5: info(); break; case 6: about(); break; case 7: salir(); break; } } while (a != 7); return 0; } void addalbum (struct alumno grupo[3]) { int i,j; for (i=0;i<3;i++) { system("color 0a"); printf("insert codebar of album\n"); scanf("%d", &grupo.codebar); system("cls"); printf("insert title of album\n"); scanf("%s", &grupo.titulo); system("cls"); printf("add artist to album\n"); scanf("%s", &grupo.artista); system ("cls"); printf("add to album monetary price\n"); scanf("%f", &grupo.precio); system("cls"); } } void ordenar (struct alumno grupo[3],struct alumno aux){ int i,j; for(i=0;i<2;i++) { for(j=i+1;j<3;j++) { if (strcmp (grupo.titulo, grupo[j].titulo) < 0) { aux = grupo; grupo = grupo[j]; grupo[j] = aux; } } } printf("\nOrdenado por nombre-------------------"); for (i=0;i<3;i++) { printf("\n matricula: %d",grupo.codebar); printf("\n Nombre: %s",grupo.artista.nombre); printf("\n Apellido Paterno: %s",grupo.artista.apPat); printf("\n Apellido Materno: %s",grupo.artista.apMat); printf("\n precio: %d",grupo.precio); } } void menor (struct alumno grupo[3],struct alumno aux) { int i,j; for(i=0;i<2;i++) { for(j=i+1;j<3;j++) { if(grupo.precio < grupo[j].precio) { aux = grupo; grupo = grupo[j]; grupo[j] = aux; } } } printf("\nOrdenado por precio-------------------"); for (i=0;i<3;i++) { printf("\n precio: %f",grupo.precio); } } void mayor (struct alumno grupo[3], struct alumno aux){ int i,j; for(i=0;i<2;i++) { for(j=i+1;j<3;j++) { if(grupo.precio > grupo[j].precio) { aux = grupo; grupo = grupo[j]; grupo[j] = aux; } } } printf("\nOrdenado por precio decentente-------------------"); for (i=0;i<3;i++) { printf("\n precio: %f",grupo.precio); } system("pause"); } Título: Re: ayuda con mi programa struct c Publicado por: naderST en 12 Marzo 2013, 07:08 am grupo es un arreglo, debes acceder a un elemento de dicho arreglo con el operador [] para así poder acceder a los capos de la estructura alumno. Ej
grupo[0].precio Título: Re: ayuda con mi programa struct c Publicado por: durasno en 13 Marzo 2013, 21:58 pm Hola! naderST en el codigo que pusieron lo mas probable es que si uso [ ]. El problema es que al no utilizar la GeSHi y al hacer [ i ] gran parte del codigo se puso en cursiva...
akiranakamure publica el programa dentro de la etiqueta GeSHi asi se puede compilar SAludos |