Experimento 7-2-7 Desplaza la matriz cuadrada hacia la derecha (20 puntos)

Esta pregunta requiere escribir un programa para desplazar cíclicamente cada elemento en una determinada matriz n × n cuadrada m posiciones a la derecha, es decir, transformar las columnas 0, 1, ..., n-1 en n − m, n − m +1, ..., n − 1, 0, 1, ..., n − m − 1 columnas.

Formato de entrada: la
primera línea de entrada da dos números enteros positivos myn (1≤n≤6). A continuación, hay un total de n filas, cada una con n números enteros, que representan una matriz cuadrada de orden n.

Formato de
salida : genera la matriz cuadrada movida de acuerdo con el formato de entrada: genera n filas, cada fila de n números enteros y genera un espacio después de cada entero.

Entrada de muestra:
2. 3.
1 2. 3.
4. 5. 6.
7. 8. 9
Muestra de salida:
2. 3. 1.
5. 4. 6.
8. 9. 7
Portal de colección de conjuntos de títulos

#include <stdio.h>
int main()
{
    
    
	int m, n, a[6][6];
	scanf("%d %d", &m, &n);
	m = m % n;    //考虑到m可能大于n,这里取模

	for (int i = 0; i < n; i++)
		for (int j = 0; j < n; j++)
			scanf("%d", &a[i][j]);

	for (int i = 0; i < n; i++)
	{
    
    
		for (int j = n-m; j < n; j++)    //先输出右移后超出最后一列的数
			printf("%d ", a[i][j]);
	    for (int j = 0; j < n - m; j++)    //在输出右移后没有超过最后一列的数
			printf("%d ", a[i][j]);
		printf("\n");
	}

	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/fjdep/article/details/112674997
Recomendado
Clasificación