标题:这个程序希望实现的功能是,把平面上的两个点的距离计算出来。不过好像没有 ...
只看楼主
ccnp
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-6-17
结帖率:100%
已结贴  问题点数:20 回复次数:8 
这个程序希望实现的功能是,把平面上的两个点的距离计算出来。不过好像没有实现预期目标。不知道错哪儿了,请各位指点下
#include<stdio.h>
#include<math.h>
void Cross(int x[],int y[],int z[]);
int main(void)
{
    int x[4],y[4],z[6];
    Cross(x,y,z);


   
}

void Cross(float x[],float y[],float z[])
{
    int i,j,k;
    int A,B,AB;
    k=0;
    printf("Input x andy y:");
    for(i=0;i<=3;i++)
    {
        scanf("%f%f",&x[i],&y[i]);
    }
    for(i=0;i<=3;i++)
    {
        printf("x=%f,y=%f.\n",x[i],y[i]);
    }

    for(i=0;i<=3;i++)

    {
        for(j=i;j<=3;j++)
        {
            A=pow((x[j]-x[i]),2);
            B=pow((y[j]-y[i]),2);
            AB=sqrt(A+B);
            
            z[k]=AB;
            k++;
        }
    }
    for(i=0;i<=5;i++)
    {
        printf("%f\n",z[i]);
    }
}
搜索更多相关主题的帖子: include Cross 平面 
2013-06-17 12:50
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:10 
楼主程序的意思我没看懂   平面不是有坐标吗?x[4]  y[4]  z[6]   代表什么?
能给下样列输入输出吗?

三十年河东,三十年河西,莫欺少年穷!
2013-06-17 12:56
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:0 
这是我的代码  不知道符不符合你的意思
程序代码:
#include<stdio.h>
#include<math.h>
void Cross(int x[],int y[]);
int main(void)
{
    int x[2],y[2];
    Cross(x,y);
    return 0;
}

void Cross(float x[],float y[])
{
    int i;
    double A,B,AB;
    printf("x坐标:");
    for(i=0;i<=1;i++)
        scanf("%f",&x[i]);
    printf("y坐标:");
    for(i=0;i<=1;i++)
        scanf("%f",&y[i]);
    A=pow(x[0]-y[0],2);
    B=pow(x[1]-y[1],2);
    AB=sqrt(A+B);
    printf("距离为:%.2f\n",AB);
} 


三十年河东,三十年河西,莫欺少年穷!
2013-06-17 13:12
ccnp
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-6-17
得分:0 
回复 2楼 韶志
是这样的,恩,输入几个坐标,然后计算它们之间的距离
2013-06-17 14:30
ccnp
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-6-17
得分:0 
回复 3楼 韶志
不好意思啊,没有注释的习惯
2013-06-17 14:31
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
得分:10 
#include<stdio.h>
#include<math.h>
void Cross(int x[],int y[],float z[]);
int main(void)
{
    int x[4],y[4];
    float z[6];
    Cross(x,y,z);


   
}

void Cross(int x[],int y[],float z[])
{
    int i,j,k;
    int A,B;
    float AB;
    k=0;
    printf("Input x andy y:");
    for(i=0;i<=3;i++)
    {
        scanf("%d%d",&x[i],&y[i]);
    }
    for(i=0;i<=3;i++)
    {
        printf("x=%d,y=%d.\n",x[i],y[i]);
    }

    for(i=0;i<=3;i++)

    {
        for(j=i;j<=3;j++)
        {
            A=pow((x[j]-x[i]),2);
            B=pow((y[j]-y[i]),2);
            AB=sqrt(A+B);
            
            z[k]=AB;
            k++;
        }
    }
    for(i=0;i<=5;i++)
    {
        printf("%f\n",z[i]);
    }
}
大概看了一下楼主的算法,应该没有错,只是有几处小地方应该修改的!
楼主复制以上代码运行看看,如果得不到想要的结果,那就是算法的问题了

思考赐予新生,时间在于定义
2013-06-17 14:33
ccnp
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-6-17
得分:0 
回复 6楼 love云彩
谢谢你,达到预期了
2013-06-17 15:08
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
得分:0 
回复 7楼 ccnp
其实楼主可以使用结构体,这样能减少很多代码,使函数体更简洁,运行时间自然缩短很多

思考赐予新生,时间在于定义
2013-06-17 15:19
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:0 
回复 5楼 ccnp
哦   现在知道啦

三十年河东,三十年河西,莫欺少年穷!
2013-06-17 16:42



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




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

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