当前位置:首页 » 编程语言 » 贪心算法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-03-17 09:58:12 浏览:172
ai缓存 发布:2025-03-17 09:48:27 浏览:920
翘嘴水滴轮什么配置 发布:2025-03-17 09:47:34 浏览:582
小蚁摄像机如何云存储 发布:2025-03-17 09:42:42 浏览:816
如何修改自己的名字和密码 发布:2025-03-17 09:32:20 浏览:787
宝马3系枪灰色轮毂是哪个配置 发布:2025-03-17 09:28:17 浏览:513
鸿蒙系统退回安卓系统怎么备份 发布:2025-03-17 09:14:33 浏览:614
数据库服务公司 发布:2025-03-17 08:56:43 浏览:495
我的世界服务器加载不了区块 发布:2025-03-17 08:56:39 浏览:818
如何给无线路由器设置密码 发布:2025-03-17 08:51:40 浏览:886