展开全部
存放空间点,用3个1维数组又方便,运行速度也快。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
float x[15],y[15],z[15];
float d,dmax;
int id,i;
printf("please input x y z for 15 points\n");
for (i=0;i<15;i++) scanf("%f %f %f",&x[i],&y[i],&z[i]);
id = 0;
dmax = x[0]*x[0] + y[0]*y[0] + z[0]*z[0]; // 用距离平方作比较,省去开方运算
for (i=1;i<15;i++){
d = x[i]*x[i] + y[i]*y[i] + z[i]*z[i];
if (d > dmax) { id = i; dmax = d;};
}
printf("it is point %d, which coordinates are %f %f %f\n",id,x[id],y[id],z[id]);
}
===================
三维数声明是:
float p[15][15][15]; // 浪费大量空间
输入:
for (i=0;i<15;i++) scanf("%f %f %f",&p[i][0][0],&p[0][i][0],&p[0][0][i]);
==================
另外方法 是 用 结构, 定义 Point 成员 x,y,z。
不如 float x[15],y[15],z[15]; 方法好。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
float x[15],y[15],z[15];
float d,dmax;
int id,i;
printf("please input x y z for 15 points\n");
for (i=0;i<15;i++) scanf("%f %f %f",&x[i],&y[i],&z[i]);
id = 0;
dmax = x[0]*x[0] + y[0]*y[0] + z[0]*z[0]; // 用距离平方作比较,省去开方运算
for (i=1;i<15;i++){
d = x[i]*x[i] + y[i]*y[i] + z[i]*z[i];
if (d > dmax) { id = i; dmax = d;};
}
printf("it is point %d, which coordinates are %f %f %f\n",id,x[id],y[id],z[id]);
}
===================
三维数声明是:
float p[15][15][15]; // 浪费大量空间
输入:
for (i=0;i<15;i++) scanf("%f %f %f",&p[i][0][0],&p[0][i][0],&p[0][0][i]);
==================
另外方法 是 用 结构, 定义 Point 成员 x,y,z。
不如 float x[15],y[15],z[15]; 方法好。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询