求点到面垂直距离的算法

img


如图所示,有1234四个坐标点。在任意三点组成平面的时候,求第四点到这个面的垂直距离。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7410936
  • 这篇博客也不错, 你可以看下有1,2,3,4-四个数字,能组成多少个不相同且没有重复数字的三位数?
  • 除此之外, 这篇博客: C语言习题练习:有1234四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少中的 题目:有1234四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    //已知条件:
    //1、三位数
    //2、1-4
    //3、要求各不相同
    //
    //输出:
    //1、有多少这样的三位数
    //2、依次输出

    思路:
    传统思路是这样的:
    如何表示已知条件:int a = 123;
    如何表示百威数字:a/100
    如何表示十位:a%100/10
    这种思路随着数字位数的增多,会变得越来越麻烦

    换一个思路:
    定义下三位数: int g, s, b;
    那么三位数的表示方式就是:b100+s10+g
    g s b 都可以取1-4,那么就用循环语句,可以采用嵌套

    for (b = 1; b < 5; b++)
    {
    	for (s = 1; s < 5; s++)
    	{
    		for (g = 1; g < 5; g++)
    		{
    			printf("%d%d%d\n", b, s, g);
    		}
    	}	
    

    结果
    在这里插入图片描述

    接下来分析各不相同
    可以采用逻辑与和if语句

    if (g != s && s != b && g != b)
    			{
    				printf("%d%d%d\n", b, s, g);
    			}
    

    结果
    在这里插入图片描述
    接下来考虑个数
    定义:

    int count = 0;
    

    没输出一次+一次

    count++;
    

    在计算完毕后输出count

    整体代码如下

    #include <stdio.h>
    int main()
    {
    int b = 0;
    int s = 0;
    int g = 0;
    int count = 0;
    for (b = 1; b < 5; b++)
    {
    	for (s = 1; s < 5; s++)
    	{
    		for (g = 1; g < 5; g++)
    		{
    			if (g != s && s != b && g != b)
    			{
    				printf("%d%d%d\n", b, s, g);
    				count++;
    			}
    		}
    	}	
    }
    printf("count = %d\n", count);
    return 0;
    }
    

    结果
    在这里插入图片描述

  • 您还可以看一下 任聪聪老师的新手产品经理的入门课程课程中的 第四课:产品经理需要具备那些团队管理能力小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^