Prev Up Next
Go backward to Mais recursividade
Go up to Alguns exercícios a exemplos dados nas aulas teóricas
Go forward to Mais recursividade

Mais recursividade



 // -----------------------------------------------------------------------------
 // Recursividade VII
 // Programa que adivinha o número em que o utilizador pensou
 main(){
   int pergunta(int);
   void adivinhei(int);
   int a,b,t,r;
   printf("Pensa num número entre 1 e %-d\n",N);
   printf("  Vou tentar adivinhá-lo\n");
   a=1;
   b=N;
   while(a<b){
     t=(a+b)/2;
     r=pergunta(t);
     if(r==0)
       adivinhei(t);
     if(r<0)
       b=t-1;
     else
       a=t+1;
   }
   adivinhei(a);
 }

 int pergunta(int x){
   int r;
   while(1){
     printf("%4d: é maior (1), menor (-1) ou igual (0)? ",x);
     scanf("%d",&r);
     if(r==-1 || r==0 || r==1)
       break;
     printf("A resposta deve ser -1 ou 0 ou 1!\n");
   }
   return(r);
 }

 void adivinhei(int x){
   printf("Adivinhei, o número que pensaste é, se não me engano, %-d\n",x);
   exit(0);
 }



Prev Up Next