| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1110 人关注过本帖
标题:程序输出的结果不对~帮忙改一下~
只看楼主 加入收藏
小环
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-4-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:16 
程序输出的结果不对~帮忙改一下~
13.编一个程序,给出三个圆的圆心和半径,输出谁和谁相交
#include "stdio.h"
#include "math.h"

int main()
{double d1,d2,d3,r1,r2,r3,x1,y1,x2,y2,x3,y3;
printf("请分别输入三个圆的圆心坐标和半径(x1,y1) (x2,y2) (x3,y3) r1 r2 r3\n");
scanf("%lf%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&r1,&r2,&r3);
d1=sqrt(pow(x1-x2,2)+(y1-y2,2));
d2=sqrt(pow(x1-x3,2)+(y1-y3,2));
d3=sqrt(pow(x3-x2,2)+(y3-y2,2));
if(fabs(r1-r2)<d1<fabs(r1+r2))
    printf("圆1与圆2相交\n");
if(fabs(r1-r3)<d2<fabs(r1+r3))
    printf("圆1与圆3相交\n");   
if(fabs(r2-r3)<d3<fabs(r2+r3))
    printf("圆2与圆3相交\n");   
else printf("任意两圆都不想交\n");
    return 0;
}
输出的结果不对~我是个初学者~
搜索更多相关主题的帖子: 结果 输出 
2010-04-10 21:28
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:2 
(fabs(r1-r2)<d1<fabs(r1+r2))应写成:(fabs(r1-r2)<d1&&d1<fabs(r1+r2))

★★★★★为人民服务★★★★★
2010-04-10 21:32
小环
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-4-10
收藏
得分:0 
回复 2楼 cnfarer
必须要这样写呀?!
2010-04-10 22:18
小环
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-4-10
收藏
得分:0 
还有就是最后的else 前面没有对应的if  这个要怎么办???
2010-04-10 22:47
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:2 

最于最有的else 你可以定义一个 变量K, 先把他初始化为0,然后当后面有IF语句符合就把他改为1,最后判断K的值就可以知道有没有园相交了;
#include "stdio.h"
#include "math.h"

int main()
{
double d1,d2,d3,r1,r2,r3,x1,y1,x2,y2,x3,y3;
int k=0;
printf("请分别输入三个圆的圆心坐标和半径(x1,y1) (x2,y2) (x3,y3) r1 r2 r3\n");
scanf("%lf%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&r1,&r2,&r3);
d1=sqrt(pow(x1-x2,2)+(y1-y2,2));
d2=sqrt(pow(x1-x3,2)+(y1-y3,2));
d3=sqrt(pow(x3-x2,2)+(y3-y2,2));
if(fabs(r1-r2)<d1&&d1<fabs(r1+r2))
    {printf("圆1与圆2相交\n");k=1;}
if(fabs(r1-r3)<d2&&d2<fabs(r1+r3))
    {printf("圆1与圆3相交\n");k=1;}   
if(fabs(r2-r3)<d3&&d3<fabs(r2+r3))
    {printf("圆2与圆3相交\n");k=1;}   
if(k==0)
      printf("任意两圆都不想交\n");
    return 0;
}
2010-04-10 22:58
小环
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-4-10
收藏
得分:0 
回复 5楼 草狼
不对呀。。。
2010-04-10 23:11
xiaomiking
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:230
专家分:130
注 册:2009-4-2
收藏
得分:2 
还发现一个错误
d1 = sqrt( pow((x1-x2),2) + pow((y1-y2),2) );
d2 = sqrt( pow((x1-x3),2) + pow((y1-y3),2) );
d3 = sqrt( pow((x3-x2),2) + pow((y3-y2),2) );

你少了个pow

If you want something , just do it ,and it`s a long time !
2010-04-10 23:29
xiaomiking
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:230
专家分:130
注 册:2009-4-2
收藏
得分:0 
我帮你改了后的程序
#include <stdio.h>
#include <math.h>

void main()
{
    double d1,d2,d3,r1,r2,r3,x1,y1,x2,y2,x3,y3;
   
    printf("分别输入三圆的圆心和半径(x1,y1) (x2,y2) (x3,y3) r1 r2 r3,变量值间用逗号隔开\n");
    scanf("%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf,%lf",&x1,&y1,&x2,&y2,&x3,&y3,&r1,&r2,&r3);
   
    d1 = sqrt( pow((x1-x2),2) + pow((y1-y2),2) );
    d2 = sqrt( pow((x1-x3),2) + pow((y1-y3),2) );
    d3 = sqrt( pow((x3-x2),2) + pow((y3-y2),2) );
   
    if(fabs(r1-r2)<d1 && d1<fabs(r1+r2))
    {
        printf("圆1与圆2相交\n");
    }
   
    if(fabs(r1-r3)<d2 && d2<fabs(r1+r3))
    {
        printf("圆1与圆3相交\n");   
    }
   
    if(fabs(r2-r3)<d3 && d3<fabs(r2+r3))
    {
        printf("圆2与圆3相交\n");   
    }
   
    else
    {
        printf("任意两圆都不相交\n");
    }
}

If you want something , just do it ,and it`s a long time !
2010-04-10 23:33
xiaomiking
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:230
专家分:130
注 册:2009-4-2
收藏
得分:0 
当一个函数无返回值时,我更喜欢用void main()格式


If you want something , just do it ,and it`s a long time !
2010-04-10 23:37
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:0 
回复 9楼 xiaomiking
  if(fabs(r1-r2)<d1 && d1<fabs(r1+r2))
    {
        printf("圆1与圆2相交\n");
    }
   
    if(fabs(r1-r3)<d2 && d2<fabs(r1+r3))
    {
        printf("圆1与圆3相交\n");   
    }
   
    if(fabs(r2-r3)<d3 && d3<fabs(r2+r3))
    {
        printf("圆2与圆3相交\n");   
    }
   
    else
    {
        printf("任意两圆都不相交\n");
    }
你这错了吧,这样写
最有一个IF语句不满足就会输出:“任意两圆都不相交”了啊
你这组数据测试下看:
0 1 0 2 0 5 1 1 0.5
2010-04-11 00:33
快速回复:程序输出的结果不对~帮忙改一下~
数据加载中...
 
   



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

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