扫地机器人家用全自动:C语言问题 懂的请进下

来源:百度文库 编辑:高校问答 时间:2024/04/29 17:29:44
#include <stdio.h>
main(){
int a,b,c; char i;
k: scanf("%d",&a);
printf("%d %d \n",a*60,a*60*60);
i=getchar();
if(i=='y') goto k;
printf("end");}
这里有一句i=getchar();为什么执行不了了.请大家帮我

当你输入一个输入一个数给&a时,
你比如打了一个 :8然后回车
8被&a获取,
当你执行i=getchar()时,getchar其实是获取了8后面的那个空格,因为对于getchar,任何的终端输入都会被接受。
所以你这里的i数值大小恒等于'\n'的值,也就是10。

应该这样写:

i=getchar();
getchar(); //“吃掉”缓冲区回车字符
putchar(i);
putchar('\n');

或者直接这样写好了:

if((i=getchar()=='y')) goto k;

int main()
{
int a,b,c; char i = 'n';
while(i!='y')
{
scanf("%d",&a);
printf("%d %d \n",a*60,a*60*60);
i=getchar();
}
printf("end");
}

改成这样试试看

这句话是从键盘取一个按键输入,如果你没敲键盘,就会停在这里不动,直到你按键盘为止

i就是你那下的键的ascii码

main(){
int a,b,c; char i;
k: scanf("%d",&a);
printf("%d %d \n",a*60,a*60*60);

while(1)
{
if('\n'==getchar())
break;
}
i=getchar();
if(i=='y') goto k;
printf("end");}

说明:
while(1)
{
if('\n'==getchar())
break;
}
清除了输入缓存内容

我看不懂,你自己去看一下!~~~~~~~~~
http://cache.baidu.com/c?word=getchar%2Cc&url=http%3A//www%2Etiantiansoft%2Ecom/Get/cc/073422285%2Ehtm&b=13&a=0&user=baidu#0