C Primer Plus笔记(3)

第八章课后复习题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读取两个字符的问题,也使用了?条件符,确实很方便

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值