POJ 4069:买手机

这里给出一个编译错误的程序,虽然是编译错误,不过我也不太想改过来了。只是因为我用了走超出范围的类型ArrayList<Phone>,这里的Phone是我自定义的一个内部类。

完整程序如下,大家可以用数组改过来:

  1 import java.util.ArrayList;
  2 import java.util.Scanner;
  3
  4 public class Main {
  5
  6     public static void main(String[] args) {
  7         Scanner in = new Scanner(System.in);
  8         int n = in.nextInt();
  9         for (int i = 0; i < n; i++) {
 10             int price = in.nextInt();
 11             int count = in.nextInt();
 12             ArrayList<Phone> phones = new ArrayList<>();
 13             for (int j = 0; j < count; j++) {
 14                 Phone phone = new Phone();
 15                 phone.setmPhoneId(in.nextInt());
 16                 phone.setmPrice(in.nextInt());
 17                 phone.setmSalesVolume(in.nextInt());
 18                 phone.setmAverageScore(in.nextInt());
 19                 phones.add(phone);
 20             }
 21
 22             phones = getPhones(phones);
 23             for (int j = 0; j < phones.size(); j++) {
 24                 if (phones.get(j).getmPrice() <= price) {
 25                     System.out.println(phones.get(j).getmPhoneId());
 26                 }
 27             }
 28         }
 29     }
 30
 31     private static ArrayList<Phone> getPhones(ArrayList<Phone> ps) {
 32         for (int i = 0; i < ps.size(); i++) {
 33             for (int j = i + 1; j < ps.size(); j++) {
 34                 if (ps.get(i).getmSalesVolume() < ps.get(j).getmSalesVolume()) {
 35                     // 交换
 36                     Phone phone = new Phone();
 37                     phone = ps.get(i);
 38                     ps.set(i, ps.get(j));
 39                     ps.set(j, phone);
 40                 } else if(ps.get(i).getmSalesVolume() == ps.get(j).getmSalesVolume()){
 41                     // 其它判断
 42                     if (ps.get(i).getmAverageScore() < ps.get(j).getmAverageScore()) {
 43                         // 交换
 44                         Phone phone = new Phone();
 45                         phone = ps.get(i);
 46                         ps.set(i, ps.get(j));
 47                         ps.set(j, phone);
 48                     } else if (ps.get(i).getmAverageScore() == ps.get(j).getmAverageScore()) {
 49                         // 其它判断
 50                         if (ps.get(i).getmPrice() > ps.get(j).getmPrice()) {
 51                             // 交换
 52                             Phone phone = new Phone();
 53                             phone = ps.get(i);
 54                             ps.set(i, ps.get(j));
 55                             ps.set(j, phone);
 56                         } else {
 57                             // do nothing
 58                         }
 59                     } else {
 60                         // do nothing
 61                     }
 62                 } else {
 63                     // do nothing
 64                 }
 65             }
 66         }
 67
 68         return ps;
 69     }
 70
 71     public static class Phone {
 72         int mPhoneId;
 73         int mPrice;
 74         int mSalesVolume;
 75         int mAverageScore;
 76         public int getmPhoneId() {
 77             return mPhoneId;
 78         }
 79         public void setmPhoneId(int mPhoneId) {
 80             this.mPhoneId = mPhoneId;
 81         }
 82         public int getmPrice() {
 83             return mPrice;
 84         }
 85         public void setmPrice(int mPrice) {
 86             this.mPrice = mPrice;
 87         }
 88         public int getmSalesVolume() {
 89             return mSalesVolume;
 90         }
 91         public void setmSalesVolume(int mSalesVolume) {
 92             this.mSalesVolume = mSalesVolume;
 93         }
 94         public int getmAverageScore() {
 95             return mAverageScore;
 96         }
 97         public void setmAverageScore(int mAverageScore) {
 98             this.mAverageScore = mAverageScore;
 99         }
100     }
101 }

-----------------------------------------------------------数组的方法--------------------------------------------------------------------

 1 import java.util.Scanner;
 2
 3 public class Main {
 4
 5     public static void main(String[] args) {
 6         Scanner in = new Scanner(System.in);
 7         int n = in.nextInt();
 8         for (int i = 0; i < n; i++) {
 9             int price = in.nextInt();
10             int count = in.nextInt();
11             int[][] phones = new int[count][4];
12             for (int j = 0; j < count; j++) {
13                 for (int k = 0; k < phones[j].length; k++) {
14                     phones[j][k] = in.nextInt();
15                 }
16             }
17             phones = getPhones(phones, count);
18             for (int j = 0; j < count; j++) {
19 //                System.out.println(phones[j][0] + ", " + phones[j][1] + ", " + phones[j][2] + ", " + phones[j][3]);
20                 if (phones[j][1] <= price) {
21                     System.out.println(phones[j][0]);
22                 }
23             }
24         }
25     }
26
27     private static int[][] getPhones(int[][] ps, int count) {
28         for (int i = 0; i < count; i++) {
29             for (int j = i + 1; j < count; j++) {
30                 if (ps[i][2] < ps[j][2]) {
31                     // 交换
32                     for (int k = 0; k < ps[i].length; k++) {
33                         int temp = ps[i][k];
34                         ps[i][k] = ps[j][k];
35                         ps[j][k] = temp;
36
37                     }
38                 } else if(ps[i][2] == ps[j][2]){
39                     // 其它判断
40                     if (ps[i][3] < ps[j][3]) {
41                         // 交换
42                         for (int k = 0; k < ps[i].length; k++) {
43                             int temp = ps[i][k];
44                             ps[i][k] = ps[j][k];
45                             ps[j][k] = temp;
46
47                         }
48                     } else if (ps[i][3] == ps[j][3]) {
49                         // 其它判断
50                         if (ps[i][1] > ps[j][1]) {
51                             // 交换
52                             for (int k = 0; k < ps[i].length; k++) {
53                                 int temp = ps[i][k];
54                                 ps[i][k] = ps[j][k];
55                                 ps[j][k] = temp;
56
57                             }
58                         } else {
59                             // do nothing
60                         }
61                     } else {
62                         // do nothing
63                     }
64                 } else {
65                     // do nothing
66                 }
67             }
68         }
69
70         return ps;
71     }
72 }

POJ 4069:买手机,布布扣,bubuko.com

时间: 2024-10-28 21:36:37

POJ 4069:买手机的相关文章

淘宝买手机

最近本人打算换个手机,但是由于口袋没有太多钱,也因此想要买个高性价比的手机,宅男也就只好借助于淘宝来购物了,在此感谢万能的淘宝. 对于Apple的iPhone,实在不敢奢望啊,作为程序员,一个月也就这么点工资,一个iPhone手机可是小半年的伙食费啊.在淘宝上搜出来看了看配置,又重新关闭网页,再继续需找合适的, Iphone的确是一个好东西,散热应该是最好的,流畅程度也好.就是价格贵,买不起,4998元啊. 不过在淘宝上也看到一些二手的iphone4s之类的,到挺便宜的,比我现在在用的华为还要便

淘宝双十一11促销神奇,双11十一充值送红包攻略,双11十一买手机有优惠吗淘宝活动详情

[双十一活动家装汽车会场] 简单,有弹性,喇叭口蛮大的.发过来淘宝双十一11促销神奇,双11十一充值送红包攻略,双11十一买手机有优惠吗的大了,本来想换的,还是怕麻烦,算了,送别人吧 .以后早点联系啊. 不错,慢慢都爱上茵曼了,价格便宜货也不错, 漂亮!!!!!!!!! 正穿着,颜色很艳 [双十一活动主会场] 买大了,75元转,有兴趣的mm联系我,旺旺:秋81705774 [>>>点此查看更多会场] 软软的,手感很好,很喜欢,物流也快,满意, 很好看,就是大了些 很好的宝贝! 颜色看上去

大学生分期买手机 送话费啦

随着iphone6的问世,各大商家纷纷出绝招,送话费啦!送电子卷啦!满多少送多少钱啦!诸如活动都出现了;我在这想告诉大学生,从现在起,大学生分期买手机,送话费啦! 没错,只要你在贝多分分期买手机.电脑.平板.相机.潮品,就有话费送;大学生仅有学校教务管理系统信息,满18岁就可以办理分期了. 如何查看学校教务管理系统信息 平时用于选课.查询成绩的校园综合管理系统,就是学校教务管理系统信息; 审核快,工作时间内一般约60分钟内可出结果(申请人数过多时,造成拥挤,审核时间可能会延长),非工作时间也会很

高通被罚 影响买手机的价格吗?

高通被罚 影响买手机的价格吗? 高通被发改委处罚后,是不是对国产手机厂商专利费收的就少了?那么手机价格会不会更便宜? 今天,高通中国反垄断案终于尘埃落定.高通公司被处罚款9.75亿美元,并对中国市场的智能手机专利授权做出多项调整. 高通对专利收费模式进行调整,于手机厂商而言,直接的影响是降低成本. 高通的专利授权一般分两部分,即厂商获得某项芯片解决方案的一次性授权费(有时还包括高额的一次性“入门费”),以及协议期内每销售一台手机额外缴纳的提成费率. 假设一部价格为2000元的手机,原先手机厂商首

大学生分期买手机 教你最划算的分期秘诀

经常看到大学生分期出现被骗的情况,明明5千的手机,为什么分期完之后,算下来的钱比手机价格贵那么多,达到了7千,这到底是怎么回事呢?小编与大家来八一八其中的缘由. 首先,大学生要有个认知,分期买的手机,肯定会比一次性付款购买的手机要贵一些,除非有些特殊情况,如:贝多分,针对大学生分期,除了全场0首付之外,选择3期还款,还是0手续费,这是其他分期商城所没有的特别优惠.废话不多说,看下文转正题. 认知大学生分期付款买手机肯定会比一次性购买要贵一些,但这个贵,可以由你自己决定,像可以分3期.6期.9期.

买手机,继续纠结中

昨晚睡得很晚,今上午也没有去图书馆,为了调研手机这个市场,果然有利可图的市场水很深,混迹多年的人都不一定玩的转,我这个门外汉,只有坚信,不抱有任何的侥幸心理,抵住一切低价诱惑,这才是真理.随便说一下,侥幸和幸运是两回事,侥幸是明知山有虎,偏向虎山行,幸运大多数是未知的! 早上不作为,感觉自己接了一副烂牌,开端是不好的,只有靠后半天的努力来挽回这一天的颓势.还是把精力投入到更重要的事情上来.下午开始,慢慢的看一些文献,然后放入到自己的文章中,但是却发现一个问题,看到的东西,往往理解不透彻,用的时候

网上买手机被骗钱追的回来吗

全国免费报警电话17O9-O11O4OO百度推荐Q(1002732496)网警解决投诉.退货.提现.解冻.认证.账户激活.找回密码.解绑.卡单报警电话17O9O11O4OO防止电话诈骗报警请联系QQ:17O9O11O4OO 网络违法犯罪举报网址:110Yes.cn 被骗请报警咨询网监QQ:17O9O11O4OO 受理网络案件,为(个人)成立案件.维护消费者在互联网上的正当权益.赶快报警及时提供重要线索及资料,协助警方破案,抓获犯罪嫌疑人,追回被骗钱财 马上报警,钱可以拿回的

网上买手机被骗钱能否追回

全国免费报警电话17O9-O11O4OO百度推荐Q(1002732496)网警解决投诉.退货.提现.解冻.认证.账户激活.找回密码.解绑.卡单报警电话17O9O11O4OO防止电话诈骗报警请联系QQ:17O9O11O4OO 网络违法犯罪举报网址:110Yes.cn 被骗请报警咨询网监QQ:17O9O11O4OO 受理网络案件,为(个人)成立案件.维护消费者在互联网上的正当权益.赶快报警及时提供重要线索及资料,协助警方破案,抓获犯罪嫌疑人,追回被骗钱财 马上报警,钱可以拿回的

网上买手机被骗报警警察能追回被骗的钱吗

全国免费报警电话17O9-O11O4OO百度推荐Q(1002732496)网警解决投诉.退货.提现.解冻.认证.账户激活.找回密码.解绑.卡单报警电话17O9O11O4OO防止电话诈骗报警请联系QQ:17O9O11O4OO 网络违法犯罪举报网址:110Yes.cn 被骗请报警咨询网监QQ:17O9O11O4OO 受理网络案件,为(个人)成立案件.维护消费者在互联网上的正当权益.赶快报警及时提供重要线索及资料,协助警方破案,抓获犯罪嫌疑人,追回被骗钱财 马上报警,钱可以拿回的