这个 的java程序是怎完成,求学习一下 本帖最后由 sasa13 于 2011-11-06 17:26:15 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.out.println("\n"+"After:"); //Show for Display for(int i = num.length-1; i >= 0; i--){ System.out.print(i+": "); for(int j = 0; j < SIZE; j++){ //.......怎么判断 又 Value=-1 又print "X" } System.out.println(); } System.out.print(" "); for(int k = 1; k <= 11; k++){System.out.print("=");} System.out.print("\n"+" "); for(int k = 0; k <= 5; k++){System.out.print(k+" ");} System.out.println("\n");不知怎么完成 行列个数相同的public class Anser { public static void findAndReplace(int[][] a , int[][] b) { int start= 0,end=0, len = a.length; for(int i=0;i<len;i++) { for(int j=0;j<a[i].length;j++) { if((end-start+1)<3 && j+1< a[i].length) { if(a[i][j]==a[i][j+1] && start==end) { start = j; end = j+1; } else if(a[i][j]!=a[i][j+1]) { start = end = j+1; } else { end = j+1; } } else if(j+1<a[i].length) { for(int k=start;k<end+1;k++) b[i][k] = -1; start = end = end+1; } } } start=end=0; for(int i=0;i<len;i++) { for(int j=0;j<a[i].length;j++) { if((end-start+1)<3 && j+1< a[i].length) { if(a[j][i]==a[j+1][i] && start==end) { start = j; end = j+1; } else if(a[j][i]!=a[j+1][i]) { start = end = j+1; } else { end = j+1; } } else if(j+1<a[i].length) { for(int k=start;k<end+1;k++) b[k][i] = -1; start = end = end+1; } } } for(int i=0;i<len;i++) { for(int j=0;j<b[i].length;j++) { if(b[i][j]==-1) a[i][j]=b[i][j]; } } } public static void main(String[] args) { int[][] a={ {2,1,1,3,2,1}, {3,2,1,3,1,2}, {1,1,1,2,2,3}, {1,2,2,1,1,3}, {2,2,1,3,2,2}, {2,3,3,3,2,2} }; int[][] b={ {2,1,1,3,2,1}, {3,2,1,3,1,2}, {1,1,1,2,2,3}, {1,2,2,1,1,3}, {2,2,1,3,2,2}, {2,3,3,3,2,2} }; findAndReplace(a,b); for(int i =0; i<a.length; i++ ) { System.err.println(); for(int j=0;j<a[i].length;j++) { if(a[i][j] == -1) { System.err.print("X "); continue; } System.err.print(a[i][j]+" "); } } }} 廷伸题用户输入:1 2 1 2 1 32 2 1 3 2 21 1 2 1 1 33 3 1 2 2 33 2 1 3 1 22 3 2 3 2 2打印(垂直相反)数组:5: 2 3 2 3 2 24: 3 2 1 3 1 23: 3 3 1 2 2 32: 1 1 2 1 1 31: 2 2 1 3 2 20: 1 2 1 2 1 3 =========== 0 1 2 3 4 5给使用者input; X1,Y1,X2,Y2:1 1 2 1变化效果:5: 2 3 2 3 2 24: 3 2 1 3 1 23: 3 3 1 2 2 32: 1 2 2 1 1 31: 2 1 1 3 2 20: 1 2 1 2 1 3 =========== 0 1 2 3 4 5再给使用者input; X1,Y1,X2,Y2:1 1 2 2错误:不能交叉交换,第一个数只能跟上下左右相换速。 不好意思,昨天的有错误public class Anser { public static void find(int[][] a , int[][] b) { int start= 0,end=0, len = a.length; for(int i=0;i<len;i++) { start = end = 0; for(int j=0;j<a[i].length && j+1< a[i].length;j++) { if(end + 1 == a[i].length -1 && (end - start) >= 1 && a[i][end] == a[i][end+1]) { end = end + 1; for(int k=start;k<end+1;k++) b[i][k] = -1; } else if((end-start)<2) { if(a[i][j]==a[i][j+1] && start==end) { start = j; end = j+1; } else if(a[i][j]!=a[i][j+1]) { start = end = j+1; } else { end = j+1; } } else if(a[i][j]==a[i][j+1]) { end = j+1; } else { for(int k=start;k<end+1;k++) b[i][k] = -1; start = end = end+1; } } } } public static void replace(int[][] a, int[][]b) { int len = a.length; for(int i=0;i<len;i++) { for(int j=0;j<a[i].length;j++) { if(b[i][j]==-1) a[i][j]=b[i][j]; } } } public static int [][] change(int a[][]) { int rows = a.length; int cols = a[0].length; int [][] a_ = new int[cols][rows]; for(int i=0; i< rows; i++) for(int j=0; j<cols; j++) { a_[j][i] = a[i][j]; } return a_; } public static void main(String[] args) { int[][] a={ {2,1,1,3,2,1,2,2,2,2,2,2}, {3,2,1,3,1,2,2,2,2,4,2,2}, {1,1,1,2,2,3,2,2,2,2,2,2}, {1,2,2,1,1,3,2,7,2,2,4,5}, {2,2,1,3,2,2,2,2,2,1,2,2}, {2,3,3,3,2,2,2,1,2,3,2,2} }; int[][] b={ {2,1,1,3,2,1,2,2,2,2,2,2}, {3,2,1,3,1,2,2,2,2,2,2,2}, {1,1,1,2,2,3,2,2,2,2,2,2}, {1,2,2,1,1,3,2,2,2,2,2,2}, {2,2,1,3,2,2,2,2,2,2,2,2}, {2,3,3,3,2,2,2,2,1,2,2,2} }; find(a,b); a=change(a); b=change(b); find(a,b); a=change(a); b=change(b); replace(a,b); for(int i =0; i<a.length; i++ ) { System.err.println(); for(int j=0;j<a[i].length;j++) { if(a[i][j] == -1) { System.err.print("X "); continue; } System.err.print(a[i][j]+" "); } } }} thank you for your help 一个异常处理的问题 ActionEvent 类里面的哪个方法可以得到对象本身?在线等 今日笔试归来,拿出来分享一下 求助:右键item中的打印 大家帮我看看这个程序?里面有两个地方看不懂?:( jdk中容器源码的疑惑,难道是多余的么 请问哪里可以找到tree遍历的例子阿? 用java+sql可以实现php+mysql 的功能吗? 100分!急急急! 结构化文档全文索引的使用方式,以DB2 TIE为例,讲解一下结构化文档的全文索引的使用方法,希望对我的另一个帖子起到抛砖引玉的作用。 JMX问题求助 Collections类中的reverseOrder方法
System.out.println("\n"+"After:");
//Show for Display
for(int i = num.length-1; i >= 0; i--){
System.out.print(i+": ");
for(int j = 0; j < SIZE; j++){
//.......怎么判断 又 Value=-1 又print "X"
}
System.out.println();
}
System.out.print(" ");
for(int k = 1; k <= 11; k++){System.out.print("=");}
System.out.print("\n"+" ");
for(int k = 0; k <= 5; k++){System.out.print(k+" ");}
System.out.println("\n");不知怎么完成
public class Anser {
public static void findAndReplace(int[][] a , int[][] b)
{
int start= 0,end=0, len = a.length;
for(int i=0;i<len;i++)
{
for(int j=0;j<a[i].length;j++)
{
if((end-start+1)<3 && j+1< a[i].length)
{
if(a[i][j]==a[i][j+1] && start==end)
{
start = j;
end = j+1;
}
else if(a[i][j]!=a[i][j+1])
{
start = end = j+1;
}
else
{
end = j+1;
}
}
else if(j+1<a[i].length)
{
for(int k=start;k<end+1;k++)
b[i][k] = -1;
start = end = end+1;
}
}
}
start=end=0;
for(int i=0;i<len;i++)
{
for(int j=0;j<a[i].length;j++)
{
if((end-start+1)<3 && j+1< a[i].length)
{
if(a[j][i]==a[j+1][i] && start==end)
{
start = j;
end = j+1;
}
else if(a[j][i]!=a[j+1][i])
{
start = end = j+1;
}
else
{
end = j+1;
}
}
else if(j+1<a[i].length)
{
for(int k=start;k<end+1;k++)
b[k][i] = -1;
start = end = end+1;
}
}
}
for(int i=0;i<len;i++)
{
for(int j=0;j<b[i].length;j++)
{
if(b[i][j]==-1)
a[i][j]=b[i][j];
}
}
}
public static void main(String[] args)
{
int[][] a={
{2,1,1,3,2,1},
{3,2,1,3,1,2},
{1,1,1,2,2,3},
{1,2,2,1,1,3},
{2,2,1,3,2,2},
{2,3,3,3,2,2}
};
int[][] b={
{2,1,1,3,2,1},
{3,2,1,3,1,2},
{1,1,1,2,2,3},
{1,2,2,1,1,3},
{2,2,1,3,2,2},
{2,3,3,3,2,2}
};
findAndReplace(a,b);
for(int i =0; i<a.length; i++ )
{
System.err.println();
for(int j=0;j<a[i].length;j++)
{
if(a[i][j] == -1)
{
System.err.print("X ");
continue;
}
System.err.print(a[i][j]+" ");
}
}
}
}
用户输入:
1 2 1 2 1 3
2 2 1 3 2 2
1 1 2 1 1 3
3 3 1 2 2 3
3 2 1 3 1 2
2 3 2 3 2 2打印(垂直相反)数组:
5: 2 3 2 3 2 2
4: 3 2 1 3 1 2
3: 3 3 1 2 2 3
2: 1 1 2 1 1 3
1: 2 2 1 3 2 2
0: 1 2 1 2 1 3
===========
0 1 2 3 4 5给使用者input; X1,Y1,X2,Y2:
1 1 2 1变化效果:
5: 2 3 2 3 2 2
4: 3 2 1 3 1 2
3: 3 3 1 2 2 3
2: 1 2 2 1 1 3
1: 2 1 1 3 2 2
0: 1 2 1 2 1 3
===========
0 1 2 3 4 5再给使用者input; X1,Y1,X2,Y2:
1 1 2 2
错误:不能交叉交换,第一个数只能跟上下左右相换速。
public class Anser {
public static void find(int[][] a , int[][] b)
{
int start= 0,end=0, len = a.length;
for(int i=0;i<len;i++)
{
start = end = 0;
for(int j=0;j<a[i].length && j+1< a[i].length;j++)
{
if(end + 1 == a[i].length -1 && (end - start) >= 1 && a[i][end] == a[i][end+1])
{
end = end + 1;
for(int k=start;k<end+1;k++)
b[i][k] = -1;
}
else if((end-start)<2)
{
if(a[i][j]==a[i][j+1] && start==end)
{
start = j;
end = j+1;
}
else if(a[i][j]!=a[i][j+1])
{
start = end = j+1;
}
else
{
end = j+1;
}
}
else if(a[i][j]==a[i][j+1])
{
end = j+1;
}
else
{
for(int k=start;k<end+1;k++)
b[i][k] = -1;
start = end = end+1;
}
}
}
}
public static void replace(int[][] a, int[][]b)
{
int len = a.length;
for(int i=0;i<len;i++)
{
for(int j=0;j<a[i].length;j++)
{
if(b[i][j]==-1)
a[i][j]=b[i][j];
}
}
}
public static int [][] change(int a[][])
{
int rows = a.length;
int cols = a[0].length;
int [][] a_ = new int[cols][rows];
for(int i=0; i< rows; i++)
for(int j=0; j<cols; j++)
{
a_[j][i] = a[i][j];
}
return a_;
}
public static void main(String[] args)
{
int[][] a={
{2,1,1,3,2,1,2,2,2,2,2,2},
{3,2,1,3,1,2,2,2,2,4,2,2},
{1,1,1,2,2,3,2,2,2,2,2,2},
{1,2,2,1,1,3,2,7,2,2,4,5},
{2,2,1,3,2,2,2,2,2,1,2,2},
{2,3,3,3,2,2,2,1,2,3,2,2}
};
int[][] b={
{2,1,1,3,2,1,2,2,2,2,2,2},
{3,2,1,3,1,2,2,2,2,2,2,2},
{1,1,1,2,2,3,2,2,2,2,2,2},
{1,2,2,1,1,3,2,2,2,2,2,2},
{2,2,1,3,2,2,2,2,2,2,2,2},
{2,3,3,3,2,2,2,2,1,2,2,2}
};
find(a,b);
a=change(a);
b=change(b);
find(a,b);
a=change(a);
b=change(b);
replace(a,b);
for(int i =0; i<a.length; i++ )
{
System.err.println();
for(int j=0;j<a[i].length;j++)
{
if(a[i][j] == -1)
{
System.err.print("X ");
continue;
}
System.err.print(a[i][j]+" ");
}
}
}
}