日期:2014-05-20  浏览次数:20643 次

新手 求助 谢谢
public static int[] m1(int [] arr)//输出 arr数组的各个数。
{
for(int i=0;i<arr.length;i++)
{
System.out.println(arr[i]);
}
return arr;
}
public static boolean m4(int arr,int i)//判断 arr是不是素数 是返回 true  不是返回false
    {
if(arr % i == 0){
return false;
}



return true;
}
public static int m3(int arr){//判断 该数组的每个数是不是素数
       for(int i=2;i<arr;i++){
        if(m4(arr,i)){
        return arr;
        }
        
       }
       

 return 0;

 

}
public static int[] m2(int [] arr){
int [] backarr= new int [arr.length];
int x=0;
for(int i=0;i<arr.length;i++){//遍历数组
x=arr[i];

   
}

 backarr[arr.length]=m3(x);----------提示我说这个

return backarr;
}
public static void main(String[] args) {
int [] arr={68,23,3,5,7,13,9,34};
int []suarr = m2( arr);--------------和这个是错误的  但是这段是老师写的 我实在不明白怎么错了   还望 能帮帮我 最好能多打点字 谢谢
m1(suarr);

}

}

------解决方案--------------------
for(int i=0;i<arr.length;i++){//遍历数组
x=arr[i];

   
}

 backarr[arr.length]=m3(x);----------提示我说这个

这个是越标了吧?
backarr[arr.length-1]=m3(x)
------解决方案--------------------
package csdn;

class demo1 {
public static int[] m1(int[] arr)// 输出 arr数组的各个数。
{
for (int i = 0; (i < arr.length)&&arr[i]!=0; i++) {
System.out.print(arr[i]+" ");
}
return arr;
}

public static boolean m4(int arr, int i)
{
int flag=0;
for (; i < arr; i++) {
if (arr % i == 0) {
flag=1;
}
}
if (flag==0) {
return false;
} else
return true;
}

public static int m3(int arr) {
if (!m4(arr, 2)) {
return arr;
}

return 0;


}

public static int[] m2(int[] arr) {
int[] backarr=new int[arr.length] ;
int x = 0;
int j=0;
for (int i = 0; i < arr.length; i++) {// 遍历数组
x = arr[i];
if (m3(x)!=0) {
backarr[j]=x;
j++;
}
}


return backarr;
}

public static void main(String[] args) {
int[] arr = { 68, 23, 3, 5, 7, 13, 9, 34 };
int[] suarr = m2(arr);
m1(suarr);

}

}