Autor
|
Tema: ayuda programa en c++ (Leído 2,460 veces)
|
w3ro
Desconectado
Mensajes: 4
|
hola tengo duda en como puedo meter en l siguiente codigo que mostrare las siguientes condiciones no se deben repetir numerors y en las esquinas debe de guardarse el numero 6 #include <stdio.h> #include <conio.h> #define tam 10 void capturar (int M[tam][tam], int f, int c); void mostrar (int M[tam][tam], int f, int c);
int main () { int M [tam] [tam]; int f, c, numero; printf ("¿qué numero de filas desea para la matriz?: \n"); scanf("%d",&f); printf ("¿que numero de columnas de la matriz: \n"); scanf("%d",&c);
printf ("\nllenado de matriz: \n"); capturar(M, f, c); printf ("\nla matriz: "); mostrar(M, f, c); getch(); return(0); } void capturar (int M[tam][tam], int f, int c) { for (int i = 1 ; i <= f ; i++) { for (int j = 1 ; j <= c ; j++) { printf ("Inserte num[%d][%d]: ",i,j); scanf("%d",&M [j]); } } }
void mostrar (int M[tam][tam], int f, int c) { for (int i = 1 ; i <= f ; i++) { printf ("\n"); for (int j = 1 ; j <= c ; j++) { printf ("[%d]",M [j] ); } } }
|
|
|
En línea
|
|
|
|
Puntoinfinito
Desconectado
Mensajes: 919
#! /win/archlinux
|
Me da que la carrera no te va muy bien eh XDD es coña, pero tio intenta algo, pon tu código y por lo menos resume un poco para que parezca una duda convencional ~~
Saludos
|
|
|
En línea
|
|
|
|
durasno
Desconectado
Mensajes: 373
|
Hola! las matrices comienzan en la posicion 0, por lo que inicializar las variables "i" y "j" en 1 estas desperdiciando una fila y una columna( igual en este caso no tiene mucho sentido ya que no estas trabajando con memoria dinamica)
Para que los numeros no se repitan tnes que hacer una busqueda en la matriz, osea q el numero ingresado no exista. Esto seria lo mas dificil pero intentalo hacer
Y para que se guarde el numero 6 en las esquinas tenes que verificar, a travez de condiciones, que "i" y "j" sean los bordes: 1 - i y j sean igual a 0(en tu caso igual a 1) 2 - i igual a 1 y j sea igual a c 3 - i sea igual a f y j igual a 0 4 - i y j sean igual a f y c
Saludos
PD: para postiar el codigo usa la GeSHi
|
|
|
En línea
|
Ahorrate una pregunta, lee el man
|
|
|
Puntoinfinito
Desconectado
Mensajes: 919
#! /win/archlinux
|
PD: para postiar el codigo usa la GeSHi
Por favor... Es horroroso leer código de esa manera
|
|
|
En línea
|
|
|
|
durasno
Desconectado
Mensajes: 373
|
Por favor... Es horroroso leer código de esa manera d q hablas??? te gusta leer el codigo asi como lo puso w3ro??? Nose cual es el problema de usar la GeSHi, si asi se visualiza mejor
|
|
|
En línea
|
Ahorrate una pregunta, lee el man
|
|
|
Puntoinfinito
Desconectado
Mensajes: 919
#! /win/archlinux
|
d q hablas??? te gusta leer el codigo asi como lo puso w3ro??? Nose cual es el problema de usar la GeSHi, si asi se visualiza mejor
Nono!! Puse tu cita para reafirmar tu frase. Me refiero que es horroroso leerlo como lo puso w3ro. Lo no dije bien
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Antes que nada, para "colgar" un código primero elige donde pone "GeSHi" las etiquetas de C++, aunque el código sea en C, y en medio de las etiquetas que aparecen "pegas" tu código, así sale bien y coloreado y es más fácil de seguir.
Como efecto no deseado, al no poner las etiquetas la matriz M, aparece como M[j], cuando en realidad las tienes bien puestas como Cosas de no usar las susodichas etiquetas.
Por lo demás el código que posteas está muy verde todavía. Pero para que no se diga que no ayudamos y siendo lo siguiente lo que quieres, si no he entendido mal:que numero de filas desea para la matriz?: 2 que numero de columnas de la matriz: 4 llenado de matriz: Inserte num[0][0]: 1 Inserte num[0][1]: 2 Inserte num[0][2]: 3 Inserte num[0][3]: 3 El numero esta repetido, ingrese otro Inserte num[0][3]: 4 Inserte num[1][0]: 5 Inserte num[1][1]: 6 Inserte num[1][2]: 7 Inserte num[1][3]: 7 El numero esta repetido, ingrese otro Inserte num[1][3]: 8 la matriz: [6][2][3][6] [6][6][7][6]
Te paso el código con "una pequeña maldad", hago uso de un array innecesario. Es para no dártelo todo hecho y que al menos veas como puedes hacerlo directamente al introducir los elementos de la matriz #include <stdio.h> #define tam 10 void capturar (int M[tam][tam], int f, int c); void mostrar (int M[tam][tam], int f, int c); int main () { int M [tam] [tam]; int f, c, numero; printf ("que numero de filas desea para la matriz?: \n"); scanf("%d",&f); printf ("que numero de columnas de la matriz: \n"); scanf("%d",&c); printf ("\nllenado de matriz: \n"); capturar(M, f, c); printf ("\nla matriz: "); mostrar(M, f, c); return(0); } void capturar (int M[tam][tam], int f, int c) { int i,j=0,k=0,l=0; int numeros[f*c]; for( i = 0; i < f*c ; i++){ if (l==c ){ k++; l=0; } printf ("Inserte num[%d][%d]: ",k,l); l++; scanf ("%d",&numeros[i]); for( j = i-1; j >=0 ; j--){ if(numeros[i] == numeros[j]){ printf("El numero esta repetido, ingrese otro\n"); i--;l--; break; } } } i=0; for (j=0;j<f;j++){ for (k=0;k<c;k++){ if ( j==0 && (k==0 || k==c-1 )|| j==f-1 && (k==0 || k==c-1)) M[j][k]=6; else M[j][k]=numeros[i]; i++; } } } void mostrar (int M[tam][tam], int f, int c) { int i,j; for ( i = 0 ; i < f ; i++) { printf ("\n"); for ( j =0 ; j < c ; j++) { printf ("[%d]",M[i][j] ); } } }
Tampoco he modificado "casi" el código que posteas, aunque esa forma de declarar la matriz a mí no me gusta. Pero bueno, para que vayas adelantando la tarea creo que tienes material ya.
Saluditos!. ....
|
|
« Última modificación: 6 Abril 2013, 20:35 pm por leosansan »
|
En línea
|
|
|
|
|
|