когда я запускаю его и после нажатия второй 'n' он не удовлетворяет логике c, и причина в том, что max возвращает 0 (проверьте последний printf), так как я могу сохранить новое значение в max?
//A GAME FOR GUESSING YOUR NUMBER BY USING THE BINARY SEARCH ALGORITHM
#include <stdio.h>
int main()
{
int min=1;
int max,z,i;
char ans;
printf("\t\t\t***GUESSING GAME***\n");
printf("Let put a rang, the min number is 1, the max is? \n");
scanf("%d",&max);//--> 15
z=(min+max)/2; //the average
while(i<max)
{
dis:
printf("The number is %d? (y/n)\n",z); //--> z =( min(1) + max(15) ) / 2 = 8
scanf("%s",&ans);
if(ans=='n')
{
printf("Is %d too high? (y/n)\n",z);
scanf("%s",&ans);
//new range [1,8]
if(ans=='y')
{
z=(min+z)/2; //--> z =( min(1) + z(8) ) / 2 = 4
goto dis;
}
ЭТО "
//new range [8,15]
if(ans=='n')
{
z=(z+max)/2; //it should be z =( z(8) + max(15) ) / 2 = 11
goto dis;
}
"
}
if(ans=='y')
{
printf("\\BINGO/");
значение max будет 0
// printf("max %d z %d",max,z);
}
i++;
}
}