永发信息网

c语言编程题!

答案:1  悬赏:10  手机版
解决时间 2021-02-12 17:40
我们有一些小木棒,可以选取其中的三根,组成一个三角形,我们的问题:在我们能够得到最大面积的三角形时,周长最小是多少。
输入
输入数据包含多个测试实例,每个实例占两行,第一行有一个数据N(3 <= N <= 100).接下来一行输入N个正整数,其中每个数都是1到100之间。如果N = 0则表示输入数据的结束,不做处理。
输出
对于每个测试实例,请输出在我们能够得到最大面积的三角形时,周长最小是多少。如果组不成三角形,输出0.每个输出占一行。
样例输入
5
1 2 3 4 5
7
1 2 3 4 6 6 6
0
样例输出
12
18
最佳答案
#include 

void swap(int *a, int *b)
{
    int t = *a;
    *a = *b;
    *b = t;
}

void sort(int *a, int n)
{
    int i, j;

    for (i = 0; i < n - 1; i++)
        for (j = 0; j < n - 1 - i; j++)
            if (a[j] < a[j + 1])
                swap(&a[j], &a[j + 1]);
}

int main(void)
{
    int n, a[100];

    while (scanf("%d", &n) != EOF && n != 0) {
        int i;

        for (i = 0; i < n; i++)
            scanf("%d", a + i);

        sort(a, n);

        for (i = 0; i < n - 3; i++)
            if (a[i] < a[i + 1] + a[i + 2])
                break;

        if (i < n - 3)
            printf("%d\n", a[i] + a[i + 1] + a[i + 2]);
        else
            printf("0\n");

    }

    return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
婚后男方家长出首付买房,剩下的部分夫妻共同
中国农业银行(雷州新湖支行)地址有知道的么?
保定市内"阿诗玛"香烟
【世界近代史】世界近代史的开端是什么时候?
好庭客家现炒快餐在哪里啊,我有事要去这个地
中国建设银行(湛江雷州支行)地址有知道的么?
为何头一天正常关机后第二天无法开机?
吸血鬼日记第八季什么时候可以看啊?
中国农业银行(雷州新城支行)地址在什么地方,
亿客隆服装超市安乡店地址有知道的么?有点事
下列各项固定资产中,企业应当计提折旧且将所
牛奶,核桃,鸡蛋,三文鱼,这四种DHA含量最高的
中国信合(企水信用社)地址在什么地方,想过去
山东齐泰集团装饰公司地址在什么地方,想过去
中国农业银行(雷州客路支行)怎么去啊,我要去
推荐资讯
【粒细胞白血病】可能为急性粒细胞白血病的是
那梨小学地址好找么,我有些事要过去
中国联通(东兴东路店)地址在什么地方,想过去
广西金明威瓷艺有限公司地址在什么地方,想过
电推子竖着推头跟横着推有什么区别?
吉米赛欧怎么去啊,我要去那办事
欧式景观设计有什么特点
施秉县第一中学地址在哪,我要去那里办事
面包车变速箱为什么声音很响
江铃秦川交五险一金吗怎么交
使用foxmail邮箱发邮件提示没有数字证书怎么
北京京栗酥香地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?