Título: Necesito ayuda con mi codigo en C Publicado por: ulquiorra03 en 23 Noviembre 2017, 03:43 am Hola,soy nuevo en el foro,necesito ayuda,la cuestión es que tengo que imprimir una matriz de esta forma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Y luego imprimirlas como si fuera un espejo,así : 4 3 2 1 8 7 6 5 12 11 10 9 16 15 14 13 pero llevo intentándolo un buen rato y no logro entender,si me pudieran decir como,se los agradecería,esto es lo que llevo: /////////////////////////////////////////////////////////////////////// #include <stdio.h> #include <stdlib.h> #include <time.h> #define REN 4 /* Constante para el número de renglones del tablero */ #define COL 4 /* Constante para el número de columnas del tablero */ void NumeraArAbID(int [REN][COL]); void NumeraArAbDI(int [REN][COL]); void DespliegaTablero(int [REN][COL]); int main() { int tablero[REN][COL], x,y; /* Inicializamos el generador de números aleatorios con el número de proceso */ srand(time(0)); NumeraArAbID(tablero); DespliegaTablero(tablero); /* A. Invocar NumeraArAbDI y DespliegaTablero */ NumeraArAbDI(tablero); DespliegaTablero(tablero); return 0; } /*De arriba hacia abajo,De izquierda a derecha.*/ void NumeraArAbID(int a[REN][COL]) { int i,j,cont = 1; for (i = 0; i < REN; i++) for (j = 0; j < COL; j++) { a[j] = cont; cont++; } } /*De arriba hacia abajo,de Derecha a Izquierda*/ void NumeraArAbDI(int a[REN][COL]) { int i,j,cont = 1; for (i = REN; i =0; i++) for (j = COL; j=0; j++) { a[j] = cont; cont++; } } /*Módulo que despliega todas las casillas del tablero*/ void DespliegaTablero(int a[REN][COL]) { int i,j; printf("\n**************************\n"); for (i = 0; i < REN; i++) { printf(" "); for (j = 0; j < COL; j++) printf("%2d ",a[j]); printf("\n"); } printf("\n**************************\n"); } Título: Re: Necesito ayuda con mi codigo en C Publicado por: Serapis en 23 Noviembre 2017, 17:27 pm Olvida por un momento que estásprogramando... toma lápiz y papel y dibuja el array inicial.
Luego debajo haz lo que te piden, muy despacio, pensando y meditando que pasos has dado para llegar a ello... toma un línea (que son los primeros 4 valores del array y los ordenas al revés, solo esa línea entre sí... luego procede con la siguiente línea que va del índice 3 al 7 (valores 5 al 8)... De hecho antes de nada intenta ordenar del revés 4 elementos entre si: 16, 21, 33, 42 cuando lo consigas intentar ordenar 5 valores dle revés, entre sí, por ejemplo estos. 16, 21, 27, 33, 42 y cuando lo consigas, tendrás las ideas necesarias para hacerlo a todo un array cada 4 elementos como te piden... Programar es pensar y conocer el lenguaje (en el que s eprograma), lo uno sin lo otro, no funciona. p.d.: Por cierto, puedes explicarme en qué te sirve esta línea para intentar resolver el problema:? Citar /* Inicializamos el generador de números aleatorios con el número de proceso */ srand(time(0)); Título: Re: Necesito ayuda con mi codigo en C Publicado por: Erius en 24 Noviembre 2017, 06:30 am El código esta en C++, espero te guíes...
#include <iostream> using namespace std; int matriz[100][100],filas,columnas; //Aquí estoy declarando las variables.. int main(int argc, char *argv[]) { cout<<"Digite el numero de filas de la matriz: "; cin>>filas; cout<<"Digite el numero de columnas de la matriz: "; cin>>columnas; //Aquí el usuario ya empieza a llenar la matriz de acuerdo al numero de filas y columnas que introdujo anteriormente. for(int i=1;i<=filas;i++){ for(int j=1;j<=columnas;j++){ cout<<"Introduzca un numero ["<<i<<"]["<<j<<"]: "; cin>>matriz[j]; } } cout<<endl; //Aquí doy un pequeño salto de linea para que se vea mas elegante al usuario //Aqui muestro la matriz priginal que lleno el usuario. for(int i=1;i<=filas;i++){ for(int j=1;j<=columnas;j++){ cout<<matriz[j]; } cout<<"\n"; } cout<<endl; //Aqui igual otro salto de linea. //Aqui ya viene la respuesta de tu pregunta. for(int i=1;i<=filas;i++){ for(int j=filas;j>0;j--){ cout<<matriz[j]; } cout<<"\n"; } return 0; } Espero te ayude....... Título: Re: Necesito ayuda con mi codigo en C Publicado por: MAFUS en 25 Noviembre 2017, 00:20 am Fíjate en este for:
Código: for (i = REN; i =0; i++) En la condición de paro dices i = 0 y esto no es una condición sino una asignación. Supongo que querrías decir i >= 0; Tienes errores de este tipo. |