| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 290 人关注过本帖
标题:关于java.lang.NullPointerException的错误
只看楼主 加入收藏
a287154777
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-10-30
结帖率:100%
收藏
 问题点数:0 回复次数:2 
关于java.lang.NullPointerException的错误
这个是题目:
任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456。求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0)。如此往复,数字会落入某个循环圈(称为数字黑洞)。                                                 比如,刚才的数字会落入:[82962, 75933, 63954, 61974] 这个循环圈。
请编写程序,找到5位数所有可能的循环圈,并输出,每个循环圈占1行。其中5位数全都相同则循环圈为 [0],这个可以不考虑。循环圈的输出格式仿照:
[82962, 75933, 63954, 61974]
其中数字的先后顺序可以不考虑。

然后我自己写了一段代码,可是老出错,
import java.*;
public class j4 {

    /**
     * @param args
     */
    static int P[];
    static int k=0;
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
            Loop(12345);
        
        
    }
    public static void Loop(int x)
    {
        int a=x/10000;
        int b=(x-(a*10000))/1000;
        int c=(x-(a*10000)-(b*1000))/100;
        int d=(x-(a*10000)-(b*1000)-(c*100))/10;
        int e=x-(a*10000)-(b*1000)-(c*100)-(d*10);
        int y[]={0,a,b,c,d,e};
        int max;
        int min;
        int sub;
        for(int m=0;m<=P.length;m++)
        {
            if(P[m]==x)
            {
                for(int n:P)
                {
                    System.out.println("循环圈:");
                    System.out.println(n);
                }
                k=0;
                return;
            }
        }
        for(int i=1;i<=4;i++)
        {
            for(int j=4;j>=i;j--)
            {
                int temp;
                if(y[i]>=y[i+1])
                {
                    temp=y[i];
                    y[i]=y[i+1];
                    y[i+1]=temp;
                }
                    
            }
            
        }
        /*for(int z:y)
            {            
            System.out.print(z);
            }*/
        max=y[5]*10000+y[4]*1000+y[3]*100+y[2]*10+y[1];
        min=y[1]*10000+y[2]*1000+y[3]*100+y[4]*10+y[5];
        sub=max-min;
        P[k]=sub;
        k++;
        System.out.println(sub);
        Loop(sub);
    }

}
  
报错:Exception in thread "main" java.lang.NullPointerException
    at j4.Loop(j4.java:28)
    at j4.main(j4.java:11)

真心搞不懂为什么啊。。。
搜索更多相关主题的帖子: 编写程序 最大的 
2013-02-04 13:54
shellingford
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
收藏
得分:0 
java.lang.NullPointerException 是最常见的运行时错误
这个要学会自己看错误信息调试

你给出的错误信息中
 at j4.Loop(j4.java:28)
    at j4.main(j4.java:11)
已经告诉你是j4.java中28行 和11行
根据行号找到相应的代码,查看是否有空的引用
例如
for(int m=0;m<=P.length;m++)
确定P已经被new出来不为空?
2013-02-04 13:58
a287154777
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-10-30
收藏
得分:0 
回复 2楼 shellingford
P分配空间后,错误消失,楼主初学者,感谢指正!
2013-02-04 14:14
快速回复:关于java.lang.NullPointerException的错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016711 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved