当前位置:首页 » 编程语言 » 贪心算法c语言

贪心算法c语言

发布时间: 2025-03-17 00:57:41

c语言 贪心算法 小朋友分组 急急急急急急急 立刻!!!!!!!

int fun(int *a, int n, int MinC, int MaxC)
{
int pmin, pmax, smin, smax, i;
pmin = pmax = smin = smax = 0;
for(i=0; i<n; i++)
{
if(a[i] < MinC)pmin += (MinC - a[i]);
if(a[i] > MaxC)pmax += (a[i] - MaxC);
smin += (a[i] - MinC);
smax += (a[i] - MaxC);
}
if(pmin == pmax)return pmin;
if(pmin > pmax && smin > 0)return pmin;
if(pmax > pmin && smax < 0)return pmax;
return -1;
}
void main()
{
int a[] = {20,8,6};
printf("%d %d %d",fun(a,3,10,15),
fun(a,3,5,20),fun(a,3,1,2));
}

看一下fun函数行不行

㈡ C语言 贪心算法求背包问题

是你的冒泡排序出了问题~

你吧 原来的1-2-3号按照东西的价值重新排列现在的1-2-3对应原来的2-1-3了
所以 你输出的时候是按 1-2-3输出的话 就等于第一个是原来的X2 第二个是X1第三个是X3
而且你的冒泡排序用错了 只比较了 P[0]/K[0]和P[1]/K[1] P[1]/K[1]和P[2]/K[2]
周一我去学校帮你重新改改 我家的机器没有C++
周一晚上我会上传答案~我最近正好也要做算法的作业~
#include <stdio.h>
#include <math.h>
#define N 50

float find(float p[N],float w[N],float x[N] ,float M,int n) /*先放单位价值量大的物体,再考虑小的物体*/
{
int i;
float maxprice;
for (i = 0; i < n; i++)
x[i] = 0;
i = 0;
maxprice=0;
while (i < n && w[i] < M)
{
M=M-w[i];
x[i] =w[i]; /* 表示放入数量 */
maxprice=maxprice+p[i];
x[n-1]=M;
i++;
}
if (i < n &&M> 0)
{
maxprice=maxprice+p[i]*x[i]/w[i];
i++;
}
return maxprice;
}

int main()
{
int n,flag=1;
float temp,M,w[N],p[N],x[N];
int a[N],b[N];
int k,j,l=0;
printf(

热点内容
南充存储服务器地址怎么找 发布:2025-09-24 02:58:24 浏览:228
联想24针服务器开关针脚怎么接 发布:2025-09-24 02:56:08 浏览:340
javanumber 发布:2025-09-24 02:42:30 浏览:213
windows7访问xp共享文件夹 发布:2025-09-24 02:31:26 浏览:356
4399账号绑定qq怎么改密码 发布:2025-09-24 01:52:15 浏览:746
数据库access2010教程 发布:2025-09-24 01:42:13 浏览:906
临时存储器 发布:2025-09-24 01:38:33 浏览:714
跟踪测算法 发布:2025-09-24 01:37:42 浏览:211
如何编译内核模块 发布:2025-09-24 01:14:47 浏览:760
王者荣耀官方服务器地址 发布:2025-09-24 00:47:29 浏览:198