首页 > 试题广场 >

序列重组矩阵

[编程题]序列重组矩阵
  • 热度指数:15769 时间限制: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,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)
#include <stdio.h>
#include <malloc.h>

int main() 
{
    int n = 0;
    int m = 0;
    int i = 0;
    int j = 0;
    int* p = NULL;

    scanf("%d%d", &n, &m);

    //开辟空间
    p = (int*)malloc(sizeof(int) * n * m);
    if(!p)
    {
        perror("malloc");
        return 1;
    }

    //录入数据
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < m; j++)
        {
            scanf("%d", p + (i * m) + j);
        }
    }

    //输出结果
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < m; j++)
        {
            printf("%d ", *(p + (i * m) + j));
        }
        printf("\n");
    }

    //开辟空间
    free(p);
    p = NULL;

    return 0;
}

编辑于 2024-03-20 00:00:46 回复(0)
#include <stdio.h>
 int main() 
 {
    int n, m;
    scanf("%d %d", &n, &m);

    int mn[10][10]; // 定义一个n行m列的矩阵

    // 输入n*m个整数
    for (int z = 0; z < n * m; z++) 
    {
        scanf("%d", &mn[z / m][z % m]); 
    }

    // 输出n行m列的矩阵
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++) 
        {
            printf("%d ", mn[i][j]);
        }
        printf("\n"); // 输出每一行后换行
    }
    return 0;
}

编辑于 2024-03-12 23:52:23 回复(0)

include

int main() {

int n = 0;

int m =0;

int i =0;

int num = 0;

scanf("%d  %d",&n,&m);

for(i=1;i<n*m+1;i++)

{

    scanf("%d ",&num);

    printf("%d ",num);

    if(i%m ==0)

    {

        printf("\n");

    }

}

return 0;

}

编辑于 2024-03-12 16:11:41 回复(0)