求教!!

eviljordan 2012-11-07 11:30:21
题目描述
【问题描述】
给一维数组输入M个整数,假设M=6,数组元素分别为 7 4 8 9 1 5 ,
要求建立一个如下数组(矩阵):

7 4 8 9 1 5
4 8 9 1 5 7
8 9 1 5 7 4
9 1 5 7 4 8
1 5 7 4 8 9
5 7 4 8 9 1

输入
【输入样例】
6
7 4 8 9 1 5

输出
【输出样例】
7 4 8 9 1 5
4 8 9 1 5 7
8 9 1 5 7 4
9 1 5 7 4 8
1 5 7 4 8 9
5 7 4 8 9 1

for(int i=0;i<array.length;i++)
{
for(int j=0;j<array[i].length;j++)
{
array[i][j]=arr[i];
if(i<=array.length-i)
{
int temp=arr[i+1];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}

应该要怎样写这里啊~~怎么没人帮下!肯定给分
...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wapigzhu 2012-11-08
  • 打赏
  • 举报
回复
好像看明白了,你是要一个二维数组?

int[] array = {7, 4, 8, 9, 1, 5};
		int[][] result = new int[array.length][];
		for(int i = 0; i < array.length; i ++){
			result[i] = new int[array.length];
			for(int j = 0; j < array.length; j ++){
				result[i][j] = array[(i + j) % array.length];
			}
		}
		for(int[] arr : result){
			for(int v : arr)
				System.out.print(v);
			System.out.println();
		}
MiceRice 2012-11-08
  • 打赏
  • 举报
回复
每太看明白你的程序,话说难度究竟是啥啊?

    public static void main(String[] args) {
        System.out.println("请直接输入一组单个数字,并以空格分隔:"); // 不需要输入总数了
        String[] nums = new Scanner(System.in).nextLine().split("\\s"); // 空格进行分隔
        System.out.println("您总共输入了 " + nums.length + " 个数字,构成矩阵如下:");
        for (int i = 0; i < nums.length; i++) { // 外层循环控制行
            for (int j = 0; j < nums.length; j++) { // 内层循环控制逐个输出
                System.out.print(nums[(i + j) % nums.length] + " "); // 主要就是个 取模 运算了
            }
            System.out.println(); // 换行
        }
    }
【测试运行】 请直接输入一组单个数字,并以空格分隔: 7 4 8 9 1 5 您总共输入了 6 个数字,构成矩阵如下: 7 4 8 9 1 5 4 8 9 1 5 7 8 9 1 5 7 4 9 1 5 7 4 8 1 5 7 4 8 9 5 7 4 8 9 1
wapigzhu 2012-11-08
  • 打赏
  • 举报
回复
没看懂你的代码。。另外写了个。。

int[] array = {7, 4, 8, 9, 1, 5};
		for(int i = 0; i < array.length; i ++){
			for(int j = 0; j < array.length; j ++){
				System.out.print(array[(i + j) % array.length]);
			}
			System.out.println();
		}

eviljordan 2012-11-08
  • 打赏
  • 举报
回复
引用 3 楼 wapigzhu 的回复:
好像看明白了,你是要一个二维数组? Java code 1234567891011121314 int[] array = {7, 4, 8, 9, 1, 5}; int[][] result = new int[array.length][]; for(int i = 0; i < array.length; i ++){ ……
result[i][j] = array[(i + j) % array.length]; 
这句不懂
eviljordan 2012-11-08
  • 打赏
  • 举报
回复
引用 3 楼 wapigzhu 的回复:
好像看明白了,你是要一个二维数组? Java code 1234567891011121314 int[] array = {7, 4, 8, 9, 1, 5}; int[][] result = new int[array.length][]; for(int i = 0; i < array.length; i ++){ ……
对啊!!求解,求解释~~
MiceRice 2012-11-08
  • 打赏
  • 举报
回复
要二维数组也非常简单,稍微改改就行了:

    public static void main(String[] args) {
        System.out.println("请直接输入一组单个数字,并以空格分隔:"); // 不需要输入总数了
        String[] nums = new Scanner(System.in).nextLine().split("\\s"); // 空格进行分隔
        System.out.println("您总共输入了 " + nums.length + " 个数字,构成矩阵如下:");
        int[][] result = new int[nums.length][nums.length]; // 保存最后转换得到的二维数组
        for (int i = 0; i < nums.length; i++) { // 外层循环控制行
            for (int j = 0; j < nums.length; j++) { // 内层循环控制逐个输出
                System.out.print(nums[(i + j) % nums.length] + " "); // 主要就是个 取模 运算了
                result[i][j] = nums[(i + j) % nums.length]; // 仍然是取模运算
            }
            System.out.println(); // 换行
        }
    }
你不懂那句话,说明你没有从计算机的思路上来分析 你所需要数组其元素的变化特点。

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧