点赞(0)
 

0.0分

9 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 7 条评论

zjj 11月前 回复TA
#include <stdio.h>
#define N 10000
int main(){
    int n,w,i,j;float a[N]={0},p[N]={0},g[N]={0},sum=0,free=0,t;scanf("%d %d",&n,&w);
    for(i=1;i<=n;i++){scanf("%f %f",&g[i],&p[i]); a[i]=p[i]/g[i];}
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
        if(a[i]<a[j])  {t=a[i];a[i]=a[j];a[j]=t;
                t=g[i];g[i]=g[j];g[j]=t;
                t=p[i];p[i]=p[j]; p[j]=t;}}}
    for(i=n;i>=1;i--){
        if(free+g[i]<=w){free+=g[i];sum+=p[i];}
        else{sum+=(w-free)*a[i];break;}}
    printf("%.1f",sum);
    return 0;}c语言版
zjj 11月前 回复TA
#include <stdio.h>
#define N 10000
int main(){
    int i,j,n,max; // n是物品的数量,max是背包装的最大重量
    float w[N]={0},p[N]={0},q[N]={0},sum=0,free=0,t;
    scanf("%d %d",&n,&max);
    for(i=1;i<=n;i++){
        scanf("%f %f",&w[i],&p[i]); // w[i]是第i件物品的重量,p[i]是第i件物品的价值
        q[i]=p[i]/w[i]; // 这里的q[i]是表示第i件物品的价值密度
    }
    for(i=1;i<=n;i++){ // 接下来这段代码虽然很长,但是很简单,这是个排序,就是按价值密度来排序,但是要注意,如果我们交换第i件物品和第j件物品时,他们的 1价值密度 2重量 3价值 都要同时交换,因为这是一一对应的,
        for(j=1;j<=n;j++){
            if(q[i]<q[j]){
                t=q[i];
                q[i]=q[j];
                q[j]=t;
                t=w[i];
TNTITY 3年前 回复TA
C语言版本:
#include<stdio.h>
#define N 10000
int main(){
    int i,j,n,max;  //n是物品的数量,max是背包装的最大重量
    float w[N]={0},p[N]={0},q[N]={0},sum=0,free=0,t;
//    cin>>n>>max;
	scanf("%d %d",&n,&max);
    for(i=1;i<=n;i++){
    	scanf("%f %f",&w[i],&p[i]);	//w[i]是第i件物品的重量,p[i]是第i件物品的价值
//      cin>>w[i]>>p[i];
        q[i]=p[i]/w[i];  //这里的q[i]是表示第i件物品的价值密度
    }
    for(i=1;i<=n;i++){      //接下来这段代码虽然很长,但是很简单,这是个排序,就是按价值密度来排序,但是要注意,如果我们交换第i件物品和第j件物品时,他们的 1价值密度 2重量  3价值  都要同时交换,因为这是一一对应的,
        for(j=1;j<=n;j++){
            if(q[i]<q[j]){
                t=q[i];
                q[i]=q[j];
isMENGYU呐 3年前 回复TA
为什么提交上不对?
小哈哈 5年前 回复TA
不好意思,提交的时候忘了改了ヾ(◍°∇°◍)ノ゙,其实C++这里的代码跟C差不多一样的,就是头文件和输入输出不一样而已
小哈哈 5年前 回复TA
@bluestar 好吧,其实跟C只是在头文件和输入输出那里不一样而已,其他代码都是通用的
bluestar 5年前 回复TA
哥哥,您这是C++呀