首页 > 试题广场 >

序列重组矩阵

[编程题]序列重组矩阵
  • 热度指数:14791 时间限制: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, 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(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)
//输入一个打印一个,满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 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)
Python中list切片[start: end : step ]
n,m =map(int,input().split())
a = list(map(int, input().split()))

for i in range(n):
    list_start=i*m
    list_end=list_start+m
    print(*a[list_start:list_end])


发表于 2024-02-09 20:50:58 回复(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)
package main

import (
    "fmt"
)

func main() {
    var n, m int
    fmt.Scan(&n, &m)
    for i := 0; i < n*m; i++ {
        var x int
        fmt.Scan(&x)
        if (i+1)%m == 0 {
            fmt.Printf("%d\n", x)
        } else {
            fmt.Printf("%d ", x)
        }
    }
}
编辑于 2023-12-25 21:45:39 回复(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)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int n = 0;
    int m = 0;
    scanf("%d%d", &n, &m);
    int arr[100] = { -1 };
    for (int i = 0; i < n * m; i++)
    {
        scanf("%d ", &arr[i]);
    }
    int i = 0;
    int j = 0;
    while (j<n*m)
    {
        for (int i = 0; i < m; i++)
        {
            printf("%d ", arr[j]);
            j++;
        }
        printf("\n");
    }
    return 0;
}
发表于 2023-11-20 20:33:07 回复(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)

问题信息

上传者:牛客309119号
难度:
103条回答 2195浏览

热门推荐

通过挑战的用户

查看代码