牛客网-公司真题-度度熊回家

本文提供了两个使用C语言编写的程序实例。第一个程序用于找出数组中距离数组长度最接近的元素的位置;第二个程序则通过海伦公式计算由特定条件限定的最大三角形面积。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>

int main()
{
    int N;
    scanf("%d\n", &N);
    int dis[N];
    for(int i = 0; i < N; i++)
    {
        scanf("%d ", &dis[i]);
        if(dis[i] == N - 1)
            printf("%d", i + 1);
    }
    return 0;
}
#include<stdio.h>
#include<math.h>
int main()
{
    int N;
    double p = 0.0;
    double d1, d2, d3; //三角形的三个边长
    double area = 0.0; //三角形的面积可能是小数,海伦公式
    double max_area = 0.0;
    scanf("%d\n", N);
    int c[N], x[N], y[N], z[N];
    for(int i = 0; i < N; i++)
    {
        scanf("%c %d %d %d\n", &c[i], &x[i], &y[i], &z[i]);
    }
    //能组成三角形的三个点:不在一条直线上,颜色要么全部相同,要么全部不同
    for(int i = 0; i < N; i++)
    {
        for(int j = i + 1; j < N; j++)
        {
            for(int k = j + 1; k < N; k++)
            {
                if(c[i] == c[j] == c[k] || c[i] != c[j] != c[k])
                {
                    while(!(x[i] == x[j] == x[k] || y[i] == y[j] == y[k] || z[i] == z[j] == z[k]))
                    {
                        d1 = math.sqrt(pow(x[i] - x[j], 2), pow(y[i] - y[j], 2), pow(z[i] - z[j], 2));
                        d2 = math.sqrt(pow(x[i] - x[k], 2), pow(y[i] - y[k], 2), pow(z[i] - z[k], 2));
                        d3 = math.sqrt(pow(x[j] - x[k], 2), pow(y[j] - y[k], 2), pow(z[j] - z[k], 2));
                        p = (d1 + d2 + d3) / 2;
                        area = math.sqrt(p * (p - d1) * (p - d2) * (p - d3));
                        if(area > max_area)
                            max_area = area;
                    }
                }
            }
        }
    }
    printf("%.5lf", max_area); //保留5位小数
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值