学习C语言标准输入输出时根据教材自己改写的代码,参考书为《C primer plus》,原程序为P226页猜数程序。
原程序功能为:
1.计算机输出打印一个1到100之间的整数,从1开始:"Is the number 1?
2.输入此数与你所准备的数是否一致。输入:y或n
3.若输入y,表示一致,屏幕显示"I guess it"然后退出程序;输入n,表示不一致,屏幕将原数加1后继续询问,直至正确
增加功能(无实用价值,仅为学习):
1.若输入字符串包含’y’,表示一致,与单独输入’y’相同;
2.若输入字符串不包含’y’,但包含’n’,表示不一致,与单独输入’n’相同;
3.若输入字符串两者都不包含,显示输入错误,继续询问同一值,直至输入正确。
#include <stdio.h>
int main(void)
{
int guess=1;
char ch;
int result=-1; //用于判断结果类型
printf("Pick an integer between 1 and 100. I will try to guess it.\n");
printf("y or n you should enter after my guess.\n");
printf("Is your number %d?\n",guess);
while (guess<=100) //用于数字循环体
{
while ((ch=getchar())!='\n') //用于遍历输入所有字符
{
if (ch=='y') //用于判断是否包含'y',若包含,结果类型为1
{
result=1;
while (getchar()!='\n') //用于
{
continue;
}
break;
}
if (ch=='n')
{
result=0;
continue;
}
}
if (result==-1)
{
printf("输入错误\n");
}
if (result==1)
{
printf("I guess it!\n");
break;
}
if (result==0)
{
++guess;
}
printf("Is your number %d?\n",guess);
}
getchar();
return 0;
}