JAVA题目,用户输入任意N个数字,按升序排列,按5*5矩阵输出。样子如下图,大于一个矩阵就空一行再输出。

没分,希望好心的高手帮忙解决。主要是如图的矩阵不会做,输入数字跟排序都会。要有代码,人笨,光有思路不行。
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个回答  2012-06-28
提问者应该不是完全不会输出这个矩阵。
我猜想应该是输入会做,存入一维数组也会做,排序也会做。要写程序输出这个矩阵应该也会做。
提问者是不会将这个排好序的一维数组变换成这个二维数组。
那我来帮你一下,同时也借用一下 紫薇参星的代码。我想提问都应该能够看懂紫薇参星的代码及功能的。
只需要改造一下 上半段就可以了。
我们假设输入的数据已经存放于一维数据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就行了嘛。

本回答被提问者采纳
第2个回答  2012-06-28
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();
}
}
}
第3个回答  2012-06-28
不会
第4个回答  2012-06-28
//输出如图的矩阵的程序如下:
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本回答被网友采纳

JAVA题目,用户输入任意N个数字,按升序排列,按5*5矩阵输出。样子如...
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];\/\/关键这里改造一下就可以了。} } ...

java,输入一个数n,输出n*n的矩阵(正方形).例如:输入5,输出5*5的正方形...
import java.io.BufferedReader;import java.io.InputStreamReader;public class JuZhen {public static String format(int source,int len){String sourceString = source+"";if (sourceString.length() >= len) {return sourceString;}else {String space = "";for (int i = 0; i < (len=s...

JAVA编程:使用不同符号输出一个5*5的图形矩阵。 如:输入'%',则打印...
public class CharToUnicode {public static void main(String[] args) {String[] st = { "%", "*", "$", "#", "&" };\/\/打印的符号String[][] ss = new String[5][5];\/\/5*5的矩阵for (int i = 0; i < ss.length; i++) {for (int j = 0; j < ss[i].length; ...

(Java程序题)输入一个5*5的矩阵(图片), 矩阵边的像素点值不变, 我的...
首先你判断定位的条件错了,还有就是你想输出4.2 4.8 这样的小数,你用int类型绝对会都输出4

用Java,定义一个二维数组,完成如下任务:将1~25依次存入一个5*5的矩 ...
可以使用如下的Java代码来定义一个5x5的二维数组,并依次存入1~25的数字:int[][] matrix = new int[5][5];int count = 1;for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { matrix[i][j] = count++;} } 矩阵中心的数值可以通过如下方式求得:int ...

编程创建一个整型5*5矩阵,矩阵元素取值为其所在行号与列号相加,并将...
public static void main(String[] args) {int[][] num=new int[5][5];for (int i = 0; i < 5; i++) {if(i==5)break;for (int j = 0; j < num[i].length; j++) {if(i==5||j==5)break;num[i][j]=i+j;System.out.print(num[i][j]+2+",");}System.out....

java题目:利用嵌套循环输出一个5*8的矩阵。帮我看看问题出在哪里?_百 ...
你好!8个*换一次行没有问题。问题出在输出*的位置,使用的是System.out.println(),换成System.out.print()就好了。System.out.println() 这个会在输出内容后面自动加上换行。希望对你有帮助!

java 中任意输入一个二维数组,然后再以矩阵的形式输出此数组。
import java.util.Scanner;public class Main1 { public static void main(String ars[]){ Scanner s=new Scanner(System.in);System.out.println("请输入数组行数和列数");int x=s.nextInt();int y=s.nextInt();int [][]awarry=new int[x][y];\/\/初始化数组 System.out.println("请...

java程序:任意输入一个4*4矩阵,实现输出并计算其中元素之和。
public static void main(String[] args) { JOptionPane.showMessageDialog(null, "Enter a 4 by 4 matrix row by row:");int[][] matrix = new int[4][4];for (int i = 0; i < matrix.length; i++)for (int j = 0; j < matrix[i].length; j++)matrix[i][j] = Integer....

用java输出以下4*5的矩阵
public class Test1{ public static void main(String[] args) { int a[][]=new int[4][5]; for(int i=0;i<4;i++) for(int j=0;j<5;j++) a[i][j]=i+j; for(int i=0;i<4;i++){ System.out.print("no:"+(i+1)+ " "); for(int j=0;j<...

相似回答