当前位置:首页 » 编程语言 » 如何在c语言中如何判断坐标
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

如何在c语言中如何判断坐标

发布时间: 2022-08-09 03:52:26

‘壹’ 如何用c语言判断四边形四个点的位置

以不规则四边形为例,我说下思路吧~ 坐标系 x右为大.y上为大

  1. 定义2个数组a[4] = {x1,...}; b[4] = {y1...};

  2. 各对数组a和b内的元素进行排序,得到2个大小关系的式子.

  3. 将 x1 和 y1 的名次相加,后面也是如此,对这4个值进行排序, 最小的为左下角的坐标

  4. 其余3个点,x的值最小为左上角的坐标

  5. 剩余2个点的y值,小的为右下角的坐标,大的为右上角的坐标

‘贰’ C语言编‘写用二维数组判断五个坐标是否在同一直线上’

#include<stdio.h>
intmain()
{
floatpoint[5][2]={{2,3},{3,4},{5,5},{6,5},{8,5}};
floatk;
k=(point[0][1]-point[1][1])/(point[0][0]-point[1][0]);
for(i=2;i<5;i++)
{
ki=(point[0][1]-point[i][1])/(point[0][0]-point[i][0]);
if(ki!==k)
{
printf("这5个点不在同一直线上 ");
break;
}
}
if(i>=5)printf("这5个点在同一直线上 ");
return0;
}

解题思路:求两点(a和b)连线的斜率为(ya-yb)/(xa-xb),因此先用前两个点计算一个斜率k,然后分别计算第1个点和剩下3个点的连线斜率ki,如果ki==k,表示它们在同一条直线上,否则就不在同一条直线上

‘叁’ 用C语言编‘写用二维数组判断五个坐标是否在同一直线上’

#include<stdio.h>
intmain()
{
floatpoint[5][2]={{0,0},{3,3},{5,5},{6,6},{8,8}};
floatk;
inti;
floatki;
k=(point[0][1]-point[1][1])/(point[0][0]-point[1][0]);
for(i=2;i<5;i++)
{
ki=(point[0][1]-point[i][1])/(point[0][0]-point[i][0]);
if(ki!=k)
{
printf("这5个点不在同一直线上 ");
break;
}
}
if(i>=5)printf("这5个点在同一直线上 ");
return0;
}

我是雷锋!!!!!

‘肆’ C语言怎么判断4个坐标坐标是否构成矩形

代码:

#include <stdio.h>


typedef struct {

double x;

double y;

}point;



int is_rectangle(point a,point b,point c,point d){

int ab_y = a.y - b.y;

int ab_x = a.x - b.x;

int cd_y = c.y - d.y;

int cd_x = c.x - d.x;

// 首先判断ab是否平行于cd

if (ab_x == 0 || cd_x == 0){

if(ab_x != cd_x){

return 0;

}

}else{

if(ab_y/ab_x != cd_y/cd_x){

return 0;

}

}



// 再判断ab是否等于cd

if(ab_y*ab_y + ab_x*ab_x != cd_y*cd_y + cd_x*cd_x){

return 0;

}


// 然后判断ab是否垂直于ac

int ac_y = a.y - c.y;

int ac_x = a.x - c.x;

if(ab_x == 0 ){

if(ac_y != 0)

return 0;

}else if(ac_x == 0){

if(ab_y != 0)

return 0;

}else if((ac_y/ac_x)*(ab_y/ab_x) != -1){

return 0;

}

return 1;

}


int main(){

printf("输入4个坐标值: ");

point a,b,c,d;

scanf("%lf %lf",&a.x,&a.y);

scanf("%lf %lf",&b.x,&b.y);

scanf("%lf %lf",&c.x,&c.y);

scanf("%lf %lf",&d.x,&d.y);

if(is_rectangle(a,b,c,d)){

printf("能构成矩形 ");

}else{

printf("无法构成矩形 ");

}

return 0;

}

运行结果:

‘伍’ C语言 判断点在第几象限

#include <stdio.h>
int main()
{ int x,y;
scanf("%d%d",&x,&y); //输入(x,y)点
if(x>0&&y>0) printf("第一象限");
if(x>0&&y<0) printf("第四象限");
if(x<0&&y>0) printf("第二象限");
if(x<0&&y<0) printf("第三象限");

}

‘陆’ c语言,,,有一半径为15的圆,圆心坐标为(0,0)从键盘任意输入一个坐标(a,b)判断这个坐标在

#include<stdio.h>
intmain(){
floatx=0,y=0,temp=0;
scanf("%f%f",&x,&y);
temp=x*x+y*y;

if(temp==15.0*15.0)
printf("点在圆上 ");
elseif(temp>15.0*15.0)
printf("点在圆外 ");
else
printf("点在圆内 ");
return0;
}

‘柒’ 用C语言说下如何快速在一个表中确认这些数字的坐标的思路

用2维数组,比如:a[9][7]; //9行7列
将表中的值作为它的元素,然后你进行比较,如果你输入的数字(例如10)等于表中的某个数,就输出它的下标i,j;比如10的下标应该为(4,1)

‘捌’ C语言推箱子:如何记录目的地坐标并判断胜利

不用指针,那你就建个数组用来存,目的地坐标,如果目的地数目一样的话,数组大小就确定了,每副图目的地数目不一样的话,那你就以最大个数为准。再用一个变量存目的地数目。
b[N][2]
这样你在判断目的在哪时,就不用m,n ,把坐标存入 b[k][0] b[k][1]中
后面 a[b[0][0]][b[0][1]]!='@'&&a[b[1][0]][b[1][1]]!='@'&&..这样来判断。
也可以在前面用个循环来判断。

第二种方法,定义一个变量k 在你把 a[x][x]的'+'变为 '@'时 k++ a[x][x]的'@'变为 '+'时 k--
当k等于目的数时就结束。

‘玖’ c语言中判断坐标的题

#includeintmain(){intx,y;scanf("%d%d",&x,&y);//输入(x,y)点if(x>0&&y>0)printf("第一象限");if(x>0&&y