C Primer Plus笔记(3)
程序员文章站
2023-12-22 22:18:52
...
第八章课后复习题8.5
#include<stdio.h>
int main()
{
int guess=50,high=100,low=0;
char jug,ch;
printf("1-100\nsay y for yes n for no\nyour number is %d ?\n\n",guess);
while(jug=getchar(),jug!='y')
{
while(getchar()!='\n')
continue;
if(jug!='n')
printf("please enter y or n\n\n");
else
{
printf("%d is bigger or smaller\ns for smaller,b for bigger\n\n",guess);
while(ch=getchar(),!(ch=='b'||ch=='s'))
printf("please enter s or b\n\n");
while(getchar()!='\n')
continue;
guess=ch=='s'?(guess+high)/2:(guess+low)/2;
printf("your number is %d ?\nplease enter y or n\n\n",guess);
}
}
printf("oh yes");
return 0;
}
运行结果:
尝试性地在while循环里用,作为序列点解决了while(ch=getchar()!=‘y’||ch=getchar()!=‘n’)会导致getchar读取两个字符的问题,也使用了?条件符,确实很方便