Hola a todos, les escribo para ver si pueden apoyarme con con el siguiente problema: busco es desplazar los valores de las columnas, 1 posición hacía la izquierda, algo similar a esto:
1 2 3 4 --> 2 3 4
1 1 2 3 4 --> 2 3 4
1 1 2 3 4 --> 2 3 4
1 1 2 3 4 --> 2 3 4
1
Inicialmente requería un movimiento hacía la derecha, pero ahora es al lado contrario. No logró encontrar la manera de hacer el cambio. Agradezco su apoyo.
Código C++:
Ver original#include <stdio.h>
#include<stdlib.h>
//desplaza filas a la columnas a la derecha//
#define kFILAS 5
#define kCOLS 4
typedef int TMatriz[kFILAS][kCOLS];
void leerMatriz(TMatriz matriz)
{
int i, j;
for(i=0; i< kFILAS; i++)
for(j=0; j< kCOLS; j++)
{
printf("Introduzca el elemento (%d, %d):", i
, j
); scanf("%d", &matriz
[i
][j
]); }
}
void correrMatriz(TMatriz matriz)
{
int i;
int j;
int temp;
/* procesamos cada una de las filas */
for (i = 0; i < kFILAS; i++){
/* resguardo del valor de la ultima columna */
temp = matriz[i][kCOLS - 1];
/* los elementos restantes los desplazamos */
for (j = kCOLS - 1; j > 0; j--)
matriz[i][j] = matriz[i][j - 1];
/* actualizamos el primer elemento */
matriz[i][j] = temp;
}
}
void escribirMatriz(TMatriz matriz)
{
int i, j;
for(i=0; i< kFILAS; i++)
{
for(j=0; j< kCOLS; j++)
}
}
int main()
{
TMatriz matriz;
leerMatriz(matriz);
escribirMatriz(matriz);
correrMatriz(matriz);
printf("Matriz desplazada: \n"); escribirMatriz(matriz);
return(0);
}