计蒜客-----泥塑课
2015-07-20 09:12
393 查看
一开始不知道错在了哪里,一直报空指针错误,后来才发现是对象数组没理解好
classroom room[] = new classroom[num];
只是声明了对象数组,并未初始化,所以直接使用room[i]会报空指针错误,正确的应该如下
classroom room[] = new classroom[num]; for (int i = 0; i < num; i++) { room[i] = new classroom(); }
声明,并且初始化变量,接下来才可以使用.
完整代码如下:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
List<String> children = new ArrayList<String>();
int num;
while(true){
num = input.nextInt();
if(num!=-1){
//这里只是声明数组,还要创建对象
classroom room[] = new classroom[num]; for (int i = 0; i < num; i++) { room[i] = new classroom(); }
for (int i = 0; i < num; i++) {
room[i].x = input.nextInt();
room[i].y = input.nextInt();
room[i].z = input.nextInt();
room[i].name = input.next();
}
children.add(judge(room));
}else{
break;
}
}
for (String string : children) {
System.out.println(string);
}
}
public static String judge(classroom room[]){
int avg = valuesum(room)/room.length;
int temp1 = 0,temp2 = 0;
for (int i = 0; i < room.length; i++) {
if(avg > room[i].volume()){
temp1 = i;
}else if(avg <room[i].volume()){
temp2 = i;
}
}
String temp = room[temp2].name+" took clay from "+room[temp1].name;
return temp;
}
public static int valuesum(classroom room[]) {
int sum = 0;
for (int i = 0; i < room.length; i++) {
sum = sum + room[i].volume();
}
return sum;
}
}
class classroom{
int x = 0;
int y = 0;
int z = 0;
String name = "";
public int volume() {
return x*y*z;
}
}
相关文章推荐
- LeeCode-Linked List Cycle
- java synchronized用法
- 初识命令行参数(以my_chmod为例)
- eclipse解决editor does not contain a main type的方法
- Vim技巧之重复
- Android自己动手打造XML解析框架
- 一张图,一棵大树,六种人, 六载人生 ~
- LeeCode-Number of 1 Bits
- uva 11234 Expressions(建立二叉树+层次遍历)
- 本地搭建Hadoop伪分布式环境之三:FlashFXP上传文件到Ubuntu
- eclipse常用的快捷键
- java中的构造方法的使用及作用分析
- 《深入浅出struts2》--第一章,Model2应用程序
- linux安装IPython四种方法
- 基于animation.css实现动画旋转特效
- thinkphp No input file specified的解决方法
- Android基础入门教程——1.10 反编译APK获取代码&资源
- linux下找到程序运行的位置
- Android源码之DeskClock (三) Proxy/Delegate Application 框架应用
- javascript学习之位置获取