求大神给我讲讲这段代码什么意思

如题所述

#include<stdio.h>
#define max(a,b) a>b?a:b //判断a、b的大小,返回大的
int a[25],n,m,s=0;
void dfs(int num,int sum)//函数功能大概是找出输入的n个数里面,小于等于m 的数中最大的数
{
    if(num>n)return;//如果num 大于输入的 n 结束
    if(sum<=m)//如果sum 小于 输入的m 进入
    {
        s=max(s,sum); //将s赋值为s和sum里最大的
    }
    dfs(num+1,sum);//递归n次,将num变到n-1的值,结束执行下一句
    dfs(num+1,sum+a[num]);//进入函数判断
}
int main()
{
    int i;
    scanf("%d%d",&n,&m);//输入两个数 n , m
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);//循环读入n 个数
        dfs(0,0);
        printf("%d",s);//输出
}追问

😳不懂

这个那两行friend是不是重载运算符为友元函数的那种

它是为了实现啥啊

温馨提示:答案为网友推荐,仅供参考
相似回答