首页 > 试题广场 >

序列重组矩阵

[编程题]序列重组矩阵
  • 热度指数: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() {
    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)
#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>
#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 arr[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-02-08 18:53:41 回复(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>

int main()
{
    int arr[100];
    int arr1[100][100];
    int n = 0;
    int m = 0;
    int a = 0;
    int count = 0;
    scanf("%d %d", &n, &m);
    for (int i = 0; i < n * m; i++)
    {
        scanf("%d", &arr[i]);
    }
    //赋值
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            arr1[i][j] = arr[count];
            count++;
        }
    }
    //打印
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            printf("%d ", arr1[i][j]);
        }
        printf("\n");
    }
    return 0;
}

发表于 2023-11-30 23:26:58 回复(0)
#include <stdio.h>
int main()
{
    int n,m;
    scanf("%d %d",&n,&m);
    int i;
    int k[n*m];//k这个一维数组一定要在n,m输入之后定义
    for(i=0;i<n*m;i++)
    {
        scanf("%d ",k+i);
    }
    int arr[n][m];
    int g = 0;
    for(i=0;i<n;i++)
    {
        int j;
        for(j=0;j<m;j++)
        {
            arr[i][j] = k[g++];
            printf("%d ",arr[i][j]);
        }
        printf("\n");//打印完一行,记得换行
    }
    return 0;
}

发表于 2023-11-11 10:56:43 回复(0)
#include <stdio.h>

int main()
{
    int n,m;
    scanf("%d %d",&n,&m);
    int arr[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;
}
发表于 2023-04-13 23:35:15 回复(0)
#include <stdio.h>
int main()
{
    int n = 0,m = 0;
    int arr[11][11] = {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]);
            printf("%d ",arr[i][j]);
        }
        puts("");//换行
    }
    return 0;
}

发表于 2023-03-22 21:45:52 回复(0)
#include <stdio.h>

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

发表于 2023-03-22 11:59:30 回复(0)
#include <stdio.h>
int main() {
    int n = 0;
    int m = 0;
    scanf("%d %d", &n, &m);
    int arr[100][100] = { 0 };

    //int arr[100] = { 0 }; 一维数组也可以
    int i = 0;
    for (i = 0; i < n; i++)
    {
        int j = 0;
        for (j = 0; j < m; j++)
        {
            scanf("%d ", &arr[i][j]);
            printf("%d ", arr[i][j]);
        }
         printf("\n");
    }
    return 0;
}

发表于 2022-12-18 18:50:37 回复(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)
????前面练习题的复杂,后面的简单,甚至这题就是前面难题代码不起眼的一部分,这题目安排的不是循序渐进,是先折磨人再安慰人,真会安排题目。
初学者刷这个顺序的题目不是劝退吗。
补充一句,牛客网题目的难度是真的分不好,有些中等题是真简单,有些简单题是真的妥妥的中等题
发表于 2022-07-28 18:45:38 回复(0)
#include<stdio.h>
int main(){
    int n,m,x,i,j,k=0;
    scanf("%d %d",&n,&m);
    int a[n][m];
    x=n*m;
    int b[x];
    for(i=0;i<x;i++){
        scanf("%d",&b[i]);
    }
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            a[i][j]=b[k];
            k++;
        }
    }
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
    
}
发表于 2022-07-25 17:20:22 回复(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)