Programa donde guardo structs de peliculas y actores. En el case 1 del switch guardo una pelicula, pero en el case 2 es donde tengo problemas.
El programa esta incompleto a partir del case 3.
En la funcion "bool introduciract" lo que estoy haciendo es primero comprobar si la peli que le he pasado existe, si existe comprobamos si queda hueco para introducir un actor (máximo 5), y por ultimo si hay hueco pues creo un actor.
Tras esto, hago un for que recorre 5 veces la estructura de pelicula, para saber si en la pelicula hay un actor igual al que acabo de crear (su nombre vamos) , sino hay uno igual tengo que introducir el actor que acabo de crear en el hueco libre (que es "pos").
Como hago eso??? Como introduzco en ese hueco libre el actor que acabo de crear, no se programar esa linea ya que he probado varias formas y me da error el programa. Solo tengo un "return true", para saber que ha entrado dentro del if.
GRACIAS.
PROGRAMA PRINCIPAL
Código C:
Ver original
#include <stdio.h> #include <stdlib.h> #include<string.h> #define MAX 100 #define MAX2 5 struct actores{ char nombre[30]; int edad; char sexo[1]; }; struct peliculas { char titulo[50]; char director[35]; int calificacion; struct actores act[5]; }; #include "funciones.h" void main(){ struct actores actor[MAX]; struct peliculas pelicula[MAX]; int opcion, i; char peli[50]; for(i=0;i<MAX;i++){ pelicula[i].titulo[0]='0'; pelicula[i].director[0]='0'; pelicula[i].calificacion=0; pelicula[i].act[i].nombre[0]='0'; pelicula[i].act[i].edad=0; pelicula[i].act[i].sexo[0]='0'; } cargar(pelicula); do{ opcion=menu(); switch(opcion){ case 1: if(celdalibre(pelicula)==true){ introducirpel(pelicula); }else{ } break; case 2: if(introduciract(actor, pelicula, peli)==true){ }else{ } break; case 3: break; case 4: break; case 5: break; case 6: break; } }while(opcion!=0); }
LIBRERIA DEL PROGRAMA
FUNCIONES.H
Código C:
Ver original
int menu(){ int opcion; do{ }while(opcion<0 || opcion>6); return opcion; } bool celdalibre(struct peliculas *pelicula){ int i; for(i=0;i<MAX;i++){ if(pelicula[i].calificacion==0){ return true; } } return false; } void introducirpel(struct peliculas *pelicula){ while(pelicula->calificacion!=0){ pelicula++; } do{ }while(pelicula->calificacion<1 || pelicula->calificacion>5); } bool introduciract(struct actores *actor, struct peliculas *pelicula, char peli[]){ int i, pos=0; for(i=0;i<MAX;i++,pelicula++){ if((pelicula[i].act[i].edad)==0){ i=pos; do{ }while(actor->edad<14 || actor->edad>90); int e = 0; for(e=0;e<5;e++){ if(pelicula[pos].act[e].nombre != actor[i].nombre){ return true; }else{ } } } } return false; } } void cargar(struct peliculas *pelicula){ FILE *pelicula1; } }