标题:为什么不执行getchar?
只看楼主
lilicup
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-12-21
结帖率:100%
已结贴  问题点数:20 回复次数:3 
为什么不执行getchar?
#include
#include
 main()
{
     
     int x1,x2,x3,y1,y2,y3;double a,b,c,p,s;int i,j,k,h,m,n;char z;
loop: printf("please input three coordinates:");
 scanf("%d,%d %d,%d %d,%d",&x1,&y1,&x2,&y2,&x3,&y3);
    i=(x1-x2);j=(x2-x3);k=(x1-x3);h=(y1-y2);m=(y1-y3);n=(y2-y3);
    if(x1==x2&&x1==x3&&x2==x3)
        printf("error:can't calculate the area\n");
else if(y1==y2&&y1==y3&&y2==y3)
        printf("error:can't calculate the area\n");
else if(i/h==j/m&&i/h==k/n&&j/m==k/n)
        printf("error:can't calculate the area\n");
    else
    {
    a=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
    b=sqrt(pow(x1-x3,2)+pow(y1-y3,2));
    c=sqrt(pow(x2-x3,2)+pow(y2-y3,2));
    p=(a+b+c)/2;
    s=sqrt(p*(p-a)*(p-b)*(p-c));
    printf("%lf,%lf,%lf,%lf\n",a,b,c,p);
    printf("%lf\n",s);
    }
    printf("would you like to continue y/n?");
    z=getchar();
while(x=='y')
goto loop;
    return 0;
}
程序执行了getchar()上句就直接press any key to continue了。。。
搜索更多相关主题的帖子: please include 
2012-11-03 18:04
zxd543
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:内蒙古
等 级:贵宾
威 望:17
帖 子:453
专家分:2351
注 册:2012-4-12
得分:20 
z=getchar();//你这好像是用Z接收的
while(x=='y')//应该是while(z=="y")吧
goto loop;
    return 0;

马马虎虎 不吝赐教 我是路过蹭分滴
2012-11-04 12:57
Eaya
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-10-17
得分:0 
while(getchar()=='y')试试
2012-11-04 13:12
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:0 
我悄悄的告诉你喔
因为你前面有个scanf啊,执行scanf会有这么一个问题。
你敲回车了吧,这是废话,不敲没法scanf

那么,这个回车命令有什么问题么?
有的有的,他被getchar吸收了,嗯,就是这样

解决方法:在scanf后也加一句getchar(),OK


[fly]存在即是合理[/fly]
2012-11-04 13:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-385791-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.600919 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved