dyxm21 2016-06-01 00:51 采纳率: 100%
浏览 1350
已采纳

求这段c语言代码换成java代码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

#include

#include

using namespace std;

struct jewelry {

int price;

int volume;

bool operator < (const jewelry &A) const {

return price > A.price;

}

}buf[101];

int main() {

int v, n, i, ans, ids;

while(~scanf("%d", &v) && v) {

scanf("%d", &n);

for(i=0; i scanf("%d%d", &buf[i].price, &buf[i].volume);
sort(buf, buf+n);
ids = 0;
ans = 0;
while(v>0 && ids if(v>=buf[ids].volume) {

v -= buf[ids].volume;

ans += buf[ids].price * buf[ids].volume;

} else {

ans += v * buf[ids].price;

v = 0;

}

ids ++;

}

printf("%d\n", ans);

}

return 0; 图片说明

  • 写回答

5条回答 默认 最新

  • threenewbee 2016-06-01 02:13
    关注
     class jewelry {  
        public int price;  
        public int volume;  
        boolean compareto (jewelry A) {  
            return this.price > A.price;
    }  
    static jewelry[] buf = new jewelry[101];  
    void main() {  
        int v, n, i, ans, ids;
            Scanner in = new Scanner(System.in);
        while(in.hasNextInt()) {
                v = in.nextInt();
            n =  in.nextInt();  
            for(i=0; i<n; i++)  
                    {
                        buf[i] = new jewelry();
                buf[i].price= in.nextInt();
                            buf[i].volume = in.nextInt();  
                    }
            sort(buf, buf+n);
            ids = 0;  
            ans = 0;  
            while(v>0 && ids<n) {  
                if(v>=buf[ids].volume) {  
                    v -= buf[ids].volume;  
                    ans += buf[ids].price * buf[ids].volume;  
                } else {  
                    ans += v * buf[ids].price;  
                    v = 0;  
                }  
                ids++;  
            }
            System.out.println(ans);  
        }  
        return 0; 
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?