首页 > 试题广场 >

序列重组矩阵

[编程题]序列重组矩阵
  • 热度指数:16029 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
KiKi现在得到一个包含n*m个数的整数序列,现在他需要把这n*m个数按顺序规划成一个n行m列的矩阵并输出,请你帮他完成这个任务。

输入描述:
一行,输入两个整数n和m,用空格分隔,第二行包含n*m个整数(范围-231~231-1)。(1≤n≤10, 1≤m≤10)


输出描述:
输出规划后n行m列的矩阵,每个数的后面有一个空格。
示例1

输入

2 3
1 2 3 4 5 6

输出

1 2 3
4 5 6
#include<stdio.h>
int main(void)
{
	int n = 0; //row
	int m = 0; //col

	scanf("%d%d", &n, &m);
	int kiki[n][m];
	
	//enter datas
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			scanf("%d", &kiki[i][j]);
		}
	}

	//output datas
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			static int line = 0; 
			printf("%d ", kiki[i][j]);
			if (++line % m == 0) //m data per line 
				printf("\n");
		} //end for j
	} //end for i
 
	return 0;
}

发表于 2020-12-18 00:59:11 回复(0)
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int i, j, n, m;
    scanf("%d %d", &n, &m);
    int *a = (int *)malloc(sizeof(int) * n * m);
    if (NULL == a)
    {
        fprintf(stderr, "Memory allocation failed!\n");
        exit(EXIT_FAILURE);
    }
    for (i = 0; i < n * m; i++)
    {
        scanf("%d", &a[i]);
    }
    for (i = 0; i < n * m; i++)
    {
        printf("%d ", a[i]);
        if (0 == (i + 1) % m)
        {
            putchar('\n');
        }
    }
    
    return 0;
}
//避免嵌套循环的话时间复杂度就不会太高;
编辑于 2020-04-19 16:53:33 回复(0)
n,m=map(int,input().split())
a=list(map(int,input().split()))
for i in range(n):
    start=i*m
    end=start+m
    print(*a[start:end])

发表于 2022-06-07 21:56:44 回复(0)
#include <bits/stdc++.h>
using namespace std;
int main(){
    int n, m, num;
    cin>>n>>m;
    int count = 0; // 记录每行个数
    while(cin>>num){
        cout<<num<<" ";
        count++;
        if(count % m == 0)
            cout<<endl;
    }
    return 0;
}

发表于 2022-01-23 21:56:59 回复(0)
#include <stdio.h>

int main() {
    int n = 0, m = 0;
    scanf("%d%d", &m, &n);
    int a = m * n;
    int arr[100] = { 0 }; 
    for(int i = 0; i < a; i++)
    {
        scanf("%d", &arr[i]);
    }
    int k = 0;
    for(int i = 0; i < m; i++)
    {
        for(int j = 0 + k; j < n + k; j++)
        {
            printf("%d ",arr[j]);
        }
        k += n ;
        printf("\n");
    }
}

发表于 2024-08-15 22:02:07 回复(0)
//输入一个打印一个,满m个就换行。
#include<stdio.h>

int main()
{
    int n,m;
    scanf("%d %d",&n,&m);
    int x=0;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            scanf("%d",&x);
            printf("%d ",x);
        }
        printf("\n");
    }
}

编辑于 2024-04-07 22:47:12 回复(0)
#include <stdio.h>

int main() {
    int n, m = 0;
    int arr[10][10] = {0};
    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            scanf("%d", &arr[i][j]);
        }
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

发表于 2024-01-23 23:17:18 回复(0)
#include <stdio.h>

int main() {
    int m,n,a[11][11];
    scanf("%d %d",&m,&n);
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            scanf("%d",&a[i][j]);
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}

编辑于 2024-01-15 14:45:45 回复(0)
#include <stdio.h>
#include<math.h>
int main() {
    int a, b[100],m,n;
    scanf("%d %d",&m,&n);
    a=m*n;
    for(int i=1;i<=a;i++){
        scanf("%d",&b[i]);
    }
    for(int i=1;i<=a;i++){
        printf("%d ",b[i]);
        if(i%n==0){//每n个数后换行
            printf("\n");
        }
    }
    return 0;
}
//直接用一维数组来做,先用一个for循环记录所有数,再用一个for循环来分行输出。
发表于 2022-10-26 20:10:35 回复(0)
#include<stdio.h>
int main() {
    int n, m, arr[10][10];
    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            scanf("%d", &arr[i][j]);
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

发表于 2022-08-06 13:59:44 回复(0)
#include <stdio.h>

int main(){
    int n, m, arr[10][10];
    int i, j = 0;
    scanf("%d %d", &n, &m);
    for(i = 0; i < n * m; i++, j++)
        scanf("%d", &arr[i/m][j%m]);
    for(i = 0; i < n * m; i++, j++){
        printf("%d ", arr[i/m][j%m]);
        if((j+1) % m==0) printf("\n"); 
    }
    return 0;
}

发表于 2022-06-09 14:44:09 回复(0)
#include<stdio.h>

int main()
{  
    int n = 0;
    int m = 0;
    scanf("%d %d",&n,&m);
    int arr[10][10]={0};
    int i = 0;
    int j = 0;
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            scanf("%d ",&arr[i][j]);
        }
    }
   for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

发表于 2025-01-03 11:08:41 回复(0)
#include <stdio.h>
#include <stdlib.h>

int main() {
int rows;
int clos;
// int initialNumber = 1;
scanf("%d %d", &rows, &clos);
int ToalNUmbre = rows * clos;
int arry1[ToalNUmbre];
for (int i = 0; i < ToalNUmbre; i++) {
scanf("%d", &arry1[i]);
}

int** arry = (int**)malloc(rows * sizeof(int*));
for (int i = 0; i < rows; i++) {
arry[i] = (int*)malloc(clos * sizeof(int));
}
for (int i = 0; i < rows; i++) {
for (int k = 0; k < clos; k++) {
arry[i][k] = arry1[i * clos + k];
}
}
for (int i = 0; i < rows; i++) {
for (int k = 0; k < clos; k++) {
printf("%d ", arry[i][k]);

}
printf("\n");
}
for (int i = 0; i < rows; i++) {
free(arry[i]);
}
free(arry);
}
发表于 2024-12-11 23:01:51 回复(0)
#include <stdio.h>

int main() {
    int a=0,b=0;
    scanf("%d %d",&a,&b);
    int arr[a][b];
    for (int i=0;i<a;i++) {
        for (int j=0;j<b;j++) {
            scanf("%d",&arr[i][j]);
        }
    }
    for (int i=0;i<a;i++) {
        for (int j=0;j<b;j++) {
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}
发表于 2024-12-07 14:33:24 回复(0)
#include <stdio.h>

int main() {
   int n,m;
   scanf("%d %d",&n,&m);
   int i,j,array[n][m];
   int arr[n*m];
   for(i=0;i<n*m;i++)
   {
    scanf("%d",&arr[i]);
   }
   for(i=0;i<n;i++)
   {
    for(j=0;j<m;j++)
    {
        array[i][j]=arr[i*m+j];
    }
   }
   for(i=0;i<n;i++)
   {
    for(j=0;j<m;j++)
    {
        printf("%d ",array[i][j]);
    }
    printf("\n");
   }
    return 0;
}

发表于 2024-10-02 20:51:37 回复(0)
row, col = map(int, input().split()) 

arr = list(map(int,input().split()))
newarr = [[] for i in range(row)]
for i in range(row):
    for j in range(col*i,col*(i+1)):
        newarr[i].append(arr[j])

for i in newarr:
    print(*i)

发表于 2024-09-29 19:04:56 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt(), m = in.nextInt();
        int[] nums1 = new int[n * m];
        int[][] nums2 = new int[n][m];

        for (int i = 0; i < n * m; i++) {
            nums1[i] = in.nextInt();
        }
        int k = 0;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                nums2[i][j] = nums1[k++];
                System.out.print(nums2[i][j] + " ");
            }
            System.out.println();
        }
    }
}

发表于 2024-09-10 16:57:16 回复(0)
#include <stdio.h>

int main() {
   int a,b;
   scanf("%d%d",&a,&b);
   int arr[a][b];
   for(int i=0;i<a;i++)
   {
    for(int j=0;j<b;j++)
    scanf("%d",&arr[i][j]);
   }
   for(int i=0;i<a;i++)
   {
    for(int j=0;j<b;j++)
   printf("%d ",arr[i][j]);
   printf("\n");
   }
   
    return 0;
}
发表于 2024-08-02 20:58:56 回复(0)
有点凑巧了属于
#include <stdio.h>

int main() {
    int n,m;
    int arr[100];
    scanf("%d %d",&n,&m);

    for(int i=0;i<n*m;i++){
        scanf("%d",&arr[i]);
    }
    
    for(int i=0;i<n*m;i++){
        printf("%d ",arr[i]);
        //直接一维数组输出,当前的i如果为m时输出换行;
        if((i+1)%m==0){
            printf("\n");
        }
    }

    return 0;
}

发表于 2024-07-27 16:49:17 回复(0)
#include <stdio.h>

int main() {
    int a , b;
    scanf("%d %d",&a, &b);
    int arr1[1000];
    int arr2[10][10];
    int count=0;
    while (count<a*b) {
    for (int i=0; i<a*b; i++) {
        scanf("%d ",&arr1[i]);
    }
    for (int i=0; i<a; i++) {
        for (int j=0; j<b; j++) {
            arr2[i][j]=arr1[count];
            printf("%d ",arr2[i][j]);
            count++;
        }
        printf("\n");
    }
    }
    return 0;
}

编辑于 2024-04-11 19:10:35 回复(0)