[risolto]esercizio c: la tartaruga e la lepre

di il
1 risposte

[risolto]esercizio c: la tartaruga e la lepre

Salve a tutti:)
ho fatto l' esrcizio 7.17 del libro dei deitel(corso completo di programmazione, 4 edizione) solo che non so perchè funzione ecco il codice

#include <stdio.h>
#include <time.h>
#define METRI 70
//inizio funzioni
void generaMovT(int *Tart);
void generaMovL(int *Lepr);
void stampaSitT(const int Tart);
void stampaSitL(const int Lepr);
//fine funzioni 
int main(int argc, char **argv)
{
	int posT=0;//posizione tartaruga
   int posL=0;//posizione lepre
   char junk;
  
   
   srand(time(NULL));
   
   do {
      
      printf("quando sei pronto scrivi qualcoa e dai invio");
      scanf("%c",&junk);
      
      generaMovT(&posT);
      
      
      stampaSitT(posT);
      
      generaMovL(&posL);
      
      stampaSitL(posL);

      printf(" ");
      scanf("%c",&junk);
      printf("\n");
      
      }while(posT<METRI&&posL<METRI);
	return 0;
}

void generaMovT(int *Tart){
   int x=1+rand()%10;
   int y;
   //printf("----------------------------------------------------------------\n");
   //printf("funzione generaMovT\n");
   switch(x){
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
         printf("tartaruga arranca rapida\n");
        y=3;
         break;
      case 6:
      case 7:
         printf("tartaruga scivola\n");
        y=-6;
         break;
      case 8:
      case 9:
      case 10:
         printf("tartaruga arranca lenta\n");
         y=1;
         break;
      default:
         printf("Tarttaruga duagfwyug\n");
         break;
      }//fine switch
   *Tart+=y;
   
   if (*Tart<0) {*Tart=0;}
   
  // printf("%d %d\n",y,*Tart);
  // printf("-----------------------------------------------------------------\n");
   
   }//fine genera movimento tartaruga
   
void generaMovL(int *Lepr){
   int x=1+rand()%10;
   int y;
  // printf("----------------------------------------------------------------------\n");
   //printf("generaMovL\n");
   switch(x){
      case 1:
      case 2:
         printf("lepre dorme\n");
         y=0;
         break;
      case 3:
      case 4:
         printf("lepre salto lungo\n");
         y=9;
         break;
      case 5:
         printf("lepre scivolone lungo\n");
         y=-12;
         break;
      case 6:
      case 7:
      case 8:
         printf("lepre salto corto\n");
         y=1;
         break;
      case 9:
      case 10:
         printf("lepre salto corto\n");
         y=-2;
         break;
      default:
         printf("Lepre duagfwyug");
         break;
      }//fine switch
   *Lepr+=y;
   
   if (*Lepr<0) {*Lepr=0;}
   
  // printf("%d %d\n",y,*Lepr);
   //printf("------------------------------------------------------------\n");
   
   }//fine genera movimento Lepre
void stampaSitT(const int Tart){
  // printf("funzione stampa sit T\n");
   int x;
   for (x=0;x<METRI;x++){
      if (Tart==x){
         printf("T");
      }
      else{
         printf("*");
         }
   } 

   printf("\n");
}//fie stampa situazionetart
void stampaSitL(const int Lepr){

//   printf("funzione stampa sit L\n");
   int x;
   for (x=0;x<METRI;x++){
      if (Lepr==x){
         printf("L");
      }
      else{
         printf("*");
         }
   }

   printf("\n");
}//fine stampa sit lepre

non capisco perchè per farlo funzionare come voglio(che aspetti che l' utente inseriscia qualcosae poi di invio,per dare tempo di leggere) debba mettere uno scanf sia a inizio che a fine, se non lo faccio esegue il codice 2 volte e poi aspetto un input.
grazie a tutti e scusate il disturbo

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte