084621138


私信TA

用户名:612522

访问量:438

签 名:

等  级
排  名 1946
经  验 2457
参赛次数 7
文章发表 4
年  龄 0
在职情况 学生
学  校 南京中医药大学
专  业

  自我简介:

菜且自知

TA的其他文章

解题思路:先排序;首尾数相加与w比较,符合的筛出0;分类计算出非0的数

参考代码:

#include <stdio.h>

#include <stdlib.h>

#define N 100

int main()

{

    int w;

    int n;

    int s[N];

    int i,j,c=0,temp;

    scanf("%d",&w);

    scanf("%d",&n);

    for(i=0;i<n;i++)

    {

        scanf("%d",&s[i]);

    }

    for(i=0;i<n-1;i++)

    {

        for(j=i;j<n;j++)

        {

            if(s[i]>s[j])

            {

                temp=s[i];

                s[i]=s[j];

                s[j]=temp;

            }

        }

    }

    for(i=0;i<n;i++)

    {

        for(j=n-1;j>0;j--)

        {

            if(s[i]+s[j]<=w && s[i]!=-1 && s[j]!=-1)

            {

                c++;

                s[i]=s[j]=-1;

                break;

            }

        }

    }

    for(i=0;i<n;i++)

    {

        if(s[i]!=-1)

        {

            c++;

        }

    }

    if(n%2!=0)

    {

        if(2*s[(n-1)/2]>w)

        {

            c=c-1;

        }

    }

    printf("%d",c);



    return 0;

}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区