当前位置:首页 » 编程语言 » 贪心算法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(

热点内容
压缩油19 发布:2025-03-17 12:25:29 浏览:854
linux上网代理 发布:2025-03-17 12:23:56 浏览:358
c是高级语言吗 发布:2025-03-17 12:16:31 浏览:522
python泛型 发布:2025-03-17 12:15:01 浏览:481
编程猫被盗 发布:2025-03-17 12:02:18 浏览:130
海关锁密码箱如何设置新密码 发布:2025-03-17 11:53:50 浏览:559
农业卡号的密码在哪里改 发布:2025-03-17 11:48:57 浏览:966
杨澜超级访问 发布:2025-03-17 11:47:17 浏览:237
数据库无损连接 发布:2025-03-17 11:47:16 浏览:13
memcachephp类 发布:2025-03-17 11:40:04 浏览:829