| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1033 人关注过本帖
标题:新人再来问问题
只看楼主 加入收藏
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
以下是引用pangding在2010-11-8 18:14:23的发言:

else 那用 {} 把那个 goto 括进去。否则不管什么情况都会 goto 的。
死循是因为,只是那个 scanf 卡住了,它能读缓冲区里的东西(虽然没读对),所以不会等待人再输入了。
把GOTO括进去?它说翻译错误。前辈你写给我看看,可能我理解错了。
2010-11-08 18:19
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
就是这意思嘛:
else {
    printf("Please input the correct number:\n");
    goto loop;
}
什么叫翻译错误?没太看懂你说的。
2010-11-08 18:47
luoyang2404
Rank: 2
等 级:论坛游民
帖 子:19
专家分:27
注 册:2010-11-8
收藏
得分:1 
楼主,你的代码我运行的没问题啊,可以跳转啊,有问题???我觉得就是风格不好而已
2010-11-08 19:02
xq328220454
Rank: 2
来 自:天津
等 级:论坛游民
帖 子:23
专家分:42
注 册:2008-8-22
收藏
得分:2 
程序代码:
//计算三角形面积
#include <stdio.h>
#include <math.h>
void main()
{
    float a,b,c,arae, s;
    while(1)
    {
        printf("请输入三角形三边\n");
        scanf("%f,%f,%f",&a,&b,&c);
        if(a==0||b==0||c==0||a<0||b<0||c<0)
            printf("请重新输入\n");
        else if ((a+b)>c&&(a+c)>b&&(b+c)>a)
        {
            s=(a+b+c)/2;
            arae=sqrt(s*(s-a)*(s-b)*(s-c));
            printf("面积为:%f\n",arae);
            break;
        }
        else
        {
            printf("请重新输入\n");
        }
    }
}
楼主不要使用goto了,已经很少在实际应用中使用它了,我是学软件工程专业的,我们讲课都不会再涉及这个语句了,你看看这个吧,使用while循环来实现的
2010-11-08 19:52
gaochizhen33
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:114
专家分:101
注 册:2010-11-4
收藏
得分:1 
定义的不是整形的么 输入小数会有效么
2010-11-08 21:16
fy8207345
Rank: 2
等 级:论坛游民
帖 子:37
专家分:64
注 册:2010-10-12
收藏
得分:1 
loop放到printf前面,应该可以
2010-11-08 22:12
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
以下是引用pangding在2010-11-8 18:47:24的发言:

就是这意思嘛:
else {
    printf("Please input the correct number:\n");
    goto loop;
}
什么叫翻译错误?没太看懂你说的。
。。。。打错字。。。编译错误。。。
不过原来真的是我自己弄错,按照你那样是可以的。谢谢
2010-11-09 10:51
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
以下是引用luoyang2404在2010-11-8 19:02:19的发言:

楼主,你的代码我运行的没问题啊,可以跳转啊,有问题???我觉得就是风格不好而已
是可以运行。但是我觉得我最后那一个return好像有点问题,因为那里我是乱来的。所以。。。。
2010-11-09 10:53
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
以下是引用gaochizhen33在2010-11-8 21:16:16的发言:

定义的不是整形的么 输入小数会有效么
所以想试一试,结果变成了死循环。
2010-11-09 10:58
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
问题已经解决:
这一个应该可以吧。
#include<stdio.h>
#include<math.h>
main()
{
     int a,b,c;
     int x=1;
     double s,area;
     printf("Please input a,b,c:\n");
     while(x)
     {
         scanf("%d%d%d",&a,&b,&c);
         if( (a+b)>c && (b+c)>a && a>0 && b>0 && c>0 && (a+c)>b)
         {
             s=((double)(a+b+c)/2);
             area=sqrt(s*(s-a)*(s-b)*(s-c));
             printf("area=%g\n",area);
             x=0;
         }
         else
         {
             printf("Please input the correct number:\n");
         }
     }

     getch();
}
2010-11-09 11:01
快速回复:新人再来问问题
数据加载中...
 
   



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

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