
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);
}
