Ciao a tutti....Potreste aiutarmi in questo esercizio.....ho problemi nell'inserimento ricorsivo di una stringa, l'inserimento dovrebbe terminare all'inserimento di "end" , il programma mi da dei problemi... Nel ciclo while devo pure inserire due interi...e chiamare una funzione che riceve un vettore di struttura(inizializzata a 0), la stringa,e i due interi, e inserisce la stringa e i due interi nel vettore di struttura. Vi prego spiegatemi dove sbaglio....o datemi qualche consiglio...
Grazie

codice:
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

struct ferie {
              char *cognome;
              int inizio;
              int durata;
              };
typedef struct ferie Ferie;
Ferie impiegati[10];                 //Vettore di strttura Ferie

int prenota(Ferie*,char,int,int);    //Funzione prenota
char nome[10][12];

main()                                            //MAIN
{int i,j=0,inizio,durata;

 for(i=0;i<10;i++){                                     //inizializzazione struttura
                   impiegati[i].cognome="Vuoto";
                   impiegati[i].inizio=0;
                   impiegati[i].durata=0;
                   }


 do{
    printf("Inserisci il cognome dell'impiegato: ");
    scanf("%s",nome[i]);


                    printf("Inserisci il gg d'inizio delle ferie : \n");
                    scanf("%d",&inizio);
                     if(inizio>0 && inizio<31){
                                              printf("Inserisci la durata delle ferie : \n");
                                               scanf("%d",&durata);
                                               if(durata >0 && durata<8)
                                               {prenota (impiegati,nome,inizio,durata);
                                               j++;}
                                               else printf("Errore! La durata va da 1 a un massimo di 7 gg.\n");
                                               }
                     else printf("Inserisci nuovamente il nome e il giorno di inizio delle ferie(1-31).\n");

 }while(strcmpi(nome[i++],"end")&& j<10);                     //PROBLEMA

 for(i=0;i<10;i++)
 printf("%c   %d    %d \n",impiegati[i].cognome,impiegati[i].inizio,impiegati[i].durata);

fflush(stdin);
getchar();
}



int prenota(Ferie*w,char nome[][12] ,int in ,int dur)
                                                                    //FUNZIONE PRENOTA
{int j=0,x,i=0,conta=0;                                             //Che riceve un nome il gg di inizio delle ferie
                                                                    //e la durata e inserisce i dati nel vettore di
                                                                    //struttura.
                                                                    //Se ci sono tre impiegati che hanno le ferire
                                                                    //nello stesso periodo rende 0 altrimenti 1

   while((strcmpi(w[j].cognome,"Vuoto")))  j++;
                       w[j].cognome= nome[i];
                       w[j].inizio=in;
                       w[j].durata=dur;
                        x=j;
if(x){
      for(i=1;i<x;i++){
                       if(w[i].inizio <= w[i-1].inizio+w[i].durata)
                       conta++;
                       }
if (conta==3) return (0);
              else return (1);
}else return (1);
 }