JAVA题目,用户输入任意N个数字,按升序排列,按5*5矩阵输出。样子如下图,大于一个矩阵就空一行再输出。
没分,希望好心的高手帮忙解决。主要是如图的矩阵不会做,输入数字跟排序都会。要有代码,人笨,光有思路不行。161116212712172238131823491419245...
没分,希望好心的高手帮忙解决。主要是如图的矩阵不会做,输入数字跟排序都会。要有代码,人笨,光有思路不行。
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
//输出
if(newchar.length<=5){ //输入少于5个数字 for(int i=0;i<newchar.length;i++){ System.out.println(newchar[i]+" "); } }else if(newchar.length>5 && newchar.length%5!=0){ //输入大于5个数字且不是5的倍数 count=newchar.length/5+1; String[][] twochar=new String[5][count]; for(int i=0;i<count;i++){ for(int j=0;j<5;j++,m++){ if(m>=(newchar.length-1)){ twochar[j][i]=""; }else{ twochar[j][i]=newchar[m]; }
} } }else if(newchar.length>5 && newchar.length%5==0){ //输入大于5个数字且是5的倍数 count=newchar.length/5; String[][] twochar=new String[5][count]; for(int i=0;i<count;i++ ){ for(int j=0;j<5;j++,m++ ){ twochar[j][i]=newchar[m]; } } 问题解决了,因为字数有限所以只贴部分代码,谢谢miws_ 的给予的启发。也谢谢大家的帮忙,没分只能多说谢谢了。 展开
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
//输出
if(newchar.length<=5){ //输入少于5个数字 for(int i=0;i<newchar.length;i++){ System.out.println(newchar[i]+" "); } }else if(newchar.length>5 && newchar.length%5!=0){ //输入大于5个数字且不是5的倍数 count=newchar.length/5+1; String[][] twochar=new String[5][count]; for(int i=0;i<count;i++){ for(int j=0;j<5;j++,m++){ if(m>=(newchar.length-1)){ twochar[j][i]=""; }else{ twochar[j][i]=newchar[m]; }
} } }else if(newchar.length>5 && newchar.length%5==0){ //输入大于5个数字且是5的倍数 count=newchar.length/5; String[][] twochar=new String[5][count]; for(int i=0;i<count;i++ ){ for(int j=0;j<5;j++,m++ ){ twochar[j][i]=newchar[m]; } } 问题解决了,因为字数有限所以只贴部分代码,谢谢miws_ 的给予的启发。也谢谢大家的帮忙,没分只能多说谢谢了。 展开
4个回答
展开全部
提问者应该不是完全不会输出这个矩阵。
我猜想应该是输入会做,存入一维数组也会做,排序也会做。要写程序输出这个矩阵应该也会做。
提问者是不会将这个排好序的一维数组变换成这个二维数组。
那我来帮你一下,同时也借用一下 紫薇参星的代码。我想提问都应该能够看懂紫薇参星的代码及功能的。
只需要改造一下 上半段就可以了。
我们假设输入的数据已经存放于一维数据int[] input中了,对一维数据的排序也不难,那我们也假设已经排好了。
改造一下:
int input[]=new int[25];
//输入数据并存入,再排序就省略了。
int a[][] = new int[5][5];
int k = 0;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
a[j][i] = input[k];
//关键这里改造一下就可以了。
}
}
我猜想应该是输入会做,存入一维数组也会做,排序也会做。要写程序输出这个矩阵应该也会做。
提问者是不会将这个排好序的一维数组变换成这个二维数组。
那我来帮你一下,同时也借用一下 紫薇参星的代码。我想提问都应该能够看懂紫薇参星的代码及功能的。
只需要改造一下 上半段就可以了。
我们假设输入的数据已经存放于一维数据int[] input中了,对一维数据的排序也不难,那我们也假设已经排好了。
改造一下:
int input[]=new int[25];
//输入数据并存入,再排序就省略了。
int a[][] = new int[5][5];
int k = 0;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
a[j][i] = input[k];
//关键这里改造一下就可以了。
}
}
追问
要求是输入任意N个数,那如果N<25或者N大于25呢?以上的就会报错,能不能再帮忙想想?谢谢啦
追答
a[j][i] = input[k++];
你在这里再判断一下啊,首先一维数据是你自己记录的有多少个你的程序肯定是知道的啊,对于二维数据同样还是产生5x5个,如果input里的数据用完了其他的就赋值为0就行了嘛。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Xuanhuan3 {
public static void main(String[] args) {
int[][] array = new int[4][4];
int f=1;
for(int m=0;m<4;m++){
for(int n=0;n<4;n++){
array[n][m] = f;
f++;
}
}
for(int m=0;m<4;m++){
for(int n=0;n<4;n++){
if((n+1)%2==0){
System.out.printf("%4d",array[m][n]);
}else{
System.out.printf("%4d",array[m][n]);
}
}
System.out.println();
}
}
}
public static void main(String[] args) {
int[][] array = new int[4][4];
int f=1;
for(int m=0;m<4;m++){
for(int n=0;n<4;n++){
array[n][m] = f;
f++;
}
}
for(int m=0;m<4;m++){
for(int n=0;n<4;n++){
if((n+1)%2==0){
System.out.printf("%4d",array[m][n]);
}else{
System.out.printf("%4d",array[m][n]);
}
}
System.out.println();
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//输出如图的矩阵的程序如下:
public class F {
public static void main(String[] args) {
int a[][]=new int[5][5];
int k=1;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
a[j][i]=k++;
}
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
System.out.print(a[i][j]+" ");
}
System.out.println();
} }}
运行结果:
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
public class F {
public static void main(String[] args) {
int a[][]=new int[5][5];
int k=1;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
a[j][i]=k++;
}
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
System.out.print(a[i][j]+" ");
}
System.out.println();
} }}
运行结果:
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询