多谢!~

解决方案 »

  1.   

    转载别人的代码:
    #include <stdio.h> 
    #include <stdlib.h> 
    #define  max  100 
    void  sort(int n,int w[max],int v[max]) 
    {  float  z[max]; 
      int    i,t; 
       for(i=0;i<=n-1;i++) 
           z=v/w; 
        for(i=0;i<=n-1;i++) 
        if(z<z[i+1]) 
          { t=w; 
            w=w[i+1]; 
            w[i+1]=t; 
    } } void   input(int n,int w[max],int v[max]) 
    {  int i; 
     printf("please input w:"); 
     for(i=0;i<=n-1;i++) 
       scanf("%d",&w); 
     printf("please input v:"); 
     for(i=0;i<=n-1;i++) 
       scanf("%d",&v); 
    } void   knap(int n,int c,float x[max],int w[max],int v[max]) 
    {  int i; 
       for(i=0;i<=n-1;i++) 
       {if(w>c) 
         break; 
        x=1; 
        c-=w;} 
        x=(float)c/w; 
    } void output(int n,float x[max]) 
    {int i; 
    printf("请输出物品的装入情况:"); 
    for(i=0;i<=n-1;i++) 
      printf("%f\t",x); 

    main() 
    {int n,c,w[max]={0},v[max]={0}; 
    float  x[max]={0}; 
       printf("请输入物品的种类n:"); 
    scanf("%d",&n); 
       printf("请输入背包的容积c:"); 
       scanf("%d",&c); 
       input(n,w,v); 
       sort(n,w,v); 
       knap(n,c,x,w,v); 
       output(n,x); 
       printf("\n"); 
    }