33,321
社区成员




#include <stdio.h>
#define MIN 0
#define MAX 100
int main(void)
{
int number = (MIN + MAX) / 2;
char c = 'N';
int compare;
printf ("Let me guess the number.\n");
while (c != 'Y')
{
printf ("Is the number %d?Y or N?\n", number);
scanf ("%c", &c);
if (c == 'Y')
break; //number为所求值
if (c == 'N')
{
printf ("1) bigger 2)smaller\n Please choose 1 or 2!\n");
scanf ("%d", &compare);
if (compare == 1)
number = (number + MAX) / 2;
if (compare == 2)
number = (number + MIN) / 2;
}
}
printf ("So, the number is %d.\n", number);
return 0;
}
//用scanf输入数值类型(int、float、double等)
//空格、回车、Tab键不会中断输入,scanf从第一个非空格/回车数值开始录入,即不管中间有多少空格有多少回车,
//都不会中断scanf的录入,除非到达scanf中规定的录入数量或遇到非数值类型时scanf("%d",&a[i++])!=1条件成立。
//格式:scanf(“输入控制符”, 输入参数);
// 当scanf控制符是字符”%c“的时候,要注意回车,回车也是一个字符,当我们连续输入两个整数,回车/空格都属于字符,都会被下一轮的
//scanf(“%c”,&运算符)吸收。导致我们无法再次输入一个运算符。
#include <stdio.h>
#define MIN 0
#define MAX 100
int main(void)
{
int number = (MIN + MAX) / 2;
char c = 'N';
int compare;
printf ("Let me guess the number.\n");
while (c != 'Y')
{
printf ("Is the number %d?Y or N?\n", number);
scanf ("%c", &c);
if (c == 'Y')
break; //number为所求值
if (c == 'N')
{
printf ("1) bigger 2)smaller\n Please choose 1 or 2!\n");
scanf ("%d", &compare);
getchar(); //for '\n'
if (compare == 1)
number = (number + MAX) / 2;
if (compare == 2)
number = (number + MIN) / 2;
}
}
printf ("So, the number is %d.\n", number);
return 0;
}
#include <stdio.h>
#define MIN 0
#define MAX 100
int main(void)
{
int number = (MIN + MAX) / 2;
char c = 'N';
int compare;
printf ("Let me guess the number.\n");
while (c != 'Y')
{
printf ("Is the number %d?Y or N?\n", number);
rewind(stdin);//清除标准输入的按键缓冲区
scanf ("%c", &c);
if (c == 'Y')
break; //number为所求值
if (c == 'N')
{
printf ("1) bigger 2)smaller\n Please choose 1 or 2!\n");
scanf ("%d", &compare);
if (compare == 1)
number = (number + MAX) / 2;
if (compare == 2)
number = (number + MIN) / 2;
}
}
printf ("So, the number is %d.\n", number);
return 0;
}