C语言请教!程序实现功能:以5000为基数,通过比大小,与读者互动,最终猜出一个未知的随机整数。

[复制链接]
查看11 | 回复2 | 2010-11-16 23:07:40 | 显示全部楼层 |阅读模式
为什么程序只执行一次,并且首次输入字符'2'时还出错。
请高手不吝指教!
# include
void main()
{
long i=5000,j;
char p,q;
printf("请输入满足条件的关系要求,其中1:大于****2:小于\n");
scanf("%c",&p);
q=p;
while(p=='1'||p=='2')
{
if(p=='1'&&p==q)

{j=i;i*=2;printf("%d\n",i);q=p;}


else if(p=='2'&&p==q)

{j=i;i/=2;printf("%d\n",&i);q=p;}
else if((p=='1'&&p!=q)||(p=='2'&&p!=q))

{j=i;i=(i+j)/2;printf("%d\n",i);q=p;}
printf("请输入满足条件的关系要求,其中1:大于****2:小于\n");

scanf("%c",&p);
}
}

回复

使用道具 举报

千问 | 2010-11-16 23:07:40 | 显示全部楼层
你的第二个输出函数printf中i前面多了一个& ,main函数前的void是没必要的,另外,最后一个输入函数scanf中,在%c前面加一个空格就行了因为你在第一个输入时输入了一个2还按了一下enter键,第一个scanf读入了2,而第二个scanf读入了那个enter,所以不能在循环了,必须加一个空格缓冲掉那个enter
回复

使用道具 举报

千问 | 2010-11-16 23:07:40 | 显示全部楼层
int main(){ long i=5000,j=10000,m = 0; char p,q = -1; printf("请在心中想一个小于10000的数,想好了按任意键继续\n");while('\n'!=getchar()){};printf("电脑猜5000,小了按1,大了按2,相等按3\n"); sc
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行