| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4496 人关注过本帖
标题:c判断三个点在一条直线上有什么问题?
只看楼主 加入收藏
lilicup
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-12-21
结帖率:100%
收藏
 问题点数:0 回复次数:4 
c判断三个点在一条直线上有什么问题?
#include<stdio.h>
int main(void)
{
int x1,x2,x3,y1,y2,y3,;double i,j,k,h,m,n;
i=(x1-x2);j=(x2-x3);k=(x1-x3);h=(y1-y2);m=(y1-y3);n=(y2-y3);
      printf("please input three coordinates:");
      scanf("%d,%d %d,%d %d,%d",&x1,&y1,&x2,&y2,&x3,&y3);

if((h/i==n/j&&h/i==m/k)
{
    printf("in a line");
}
else
printf("not in a line");
    return(0);

}
搜索更多相关主题的帖子: please return 
2012-11-05 17:18
xiaoseqingch
Rank: 2
等 级:论坛游民
帖 子:36
专家分:42
注 册:2010-6-19
收藏
得分:0 
#include<stdio.h>
int main(void)
{
int x1,x2,x3,y1,y2,y3,;double i,j,k,h,m,n;
//i=(x1-x2);j=(x2-x3);k=(x1-x3);h=(y1-y2);m=(y1-y3);n=(y2-y3);  你把这行代码放这儿的时候x1,x2等等还没有赋值。到你后边用if的时候就不是i=(x1-x2);j=(x2-x3);k……算出的数了,这是计算语句应该在确定了各个数的值之后再算,所以给你放后边了
      printf("please input three coordinates:");
      scanf("%d %d %d %d %d %d",&x1,&y1,&x2,&y2,&x3,&y3);  你原来的输入语句里边有几个逗号。你输入的时候肯定是没输入逗号的,按你原来scanf("%d,%d %d,%d %d,%d",&x1,&y1,&x2,&y2,&x3,&y3);的写法,在输入坐标的时候应该是1,2 2,4 4,8.。所以把你那几个逗号去了。就好了。。。编译通过。
      i=(x1-x2);j=(x2-x3);k=(x1-x3);h=(y1-y2);m=(y1-y3);n=(y2-y3 );

if(h/i==n/j&&h/i==m/k)
{
    printf("in a line");
}
else
printf("not in a line");
    return(0);

}
2012-11-05 20:29
lilicup
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-12-21
收藏
得分:0 
回复 2楼 xiaoseqingch
谢谢
2012-11-07 13:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
三点坐标用整数表示?你这个程序设计上就有问题。

授人以渔,不授人以鱼。
2012-11-07 14:24
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
我也做了下
程序代码:
#include<stdio.h>
int main()
{
    int x1,x2,x3,y1,y2,y3;
    double i,j,h,n;

    printf("please input therr coordinates:");
    for(;;)  /*循环输入,确保,x1,x2,x3的值不相等,否则h/i,n/j无意义*/
    {
    scanf("%d,%d,%d,%d,%d,%d",&x1,&x2,&x3,&y1,&y2,&y3);
    if(x1==x2||x1==x3||x2==x3)
        {
        printf("error,re-input please");
        }
    else break;/*x1,x2,x3确保不相等后跳出循环*/
    }
    i=(x1-x2);j=(x2-x3);
    h=(y1-y2);n=(y2-y3);
    if(h/i==n/j) /*个人感觉比较一次就行*/
    {
        printf("in a line");
    }
    else
    printf("not in a line");
    return 0;
}
本人新手,说错勿怪

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-07 15:21
快速回复:c判断三个点在一条直线上有什么问题?
数据加载中...
 
   



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

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