• Viernes 8 de Noviembre de 2024, 11:41

Autor Tema:  Problema con Funciones  (Leído 2833 veces)

Diego21

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Problema con Funciones
« en: Martes 24 de Mayo de 2011, 16:30 »
0
Tengo estás dos funciones de un programa:
// PRIMERA FUNCIÓN : GENERA 4 NÚMEROS ALEATORIOS ENTRE 0-6

void gener_num(void)
{
int aleatorio=0;
srand (time(NULL));
for(int i=1; i<5; i++){
aleatorio = rand()%7 ;
printf("%d",aleatorio);
}

// SEGUNDA FUNCIÓN : MATRIZ DE 8X4 COMPONENTES TODOS A CEROS


void ini_jugadas(int matriz[8][4])
{
int filas=0, columnas=0;
for (filas=0; filas<9; filas++) {
printf("n");
printf("%d",filas+1);
for (columnas=0; columnas<4; columnas++) {
if(filas>=0 && filas<7)matriz[filas][columnas]=0;
if(filas==7)gener_num();
printf("%2d",matriz[filas][columnas]);
}
}
}
Mi problema es que necesito copiar el número aleatorio de la función 1 en la fila 8 de la la función 2 pero que no se vean sino solo se almacena en la fila y que aparezcan (-) guiones en vez de los números aleatorios.
Lo que he hecho es llamar la función en la fila 8 pero se me generan además de los números aleatorios una serie de números que no se como controlar(eliminar)
ni se como debo poner guiones.

Es en C  uso el Borland 4.5.

ssaammuu

  • Miembro activo
  • **
  • Mensajes: 41
  • Nacionalidad: es
    • Ver Perfil
    • http://desarrollodejuegos.net
Re: Problema con Funciones
« Respuesta #1 en: Martes 24 de Mayo de 2011, 18:12 »
0
Porque no cambias tu función número 1 para que devuelva un entero
Código: C
  1.  
  2. int gener_num(void)
  3. {
  4. int n = rand()%7 ;
  5. return n;
  6. }
  7.  
  8.  

Y después lo llamas en la función número dos. Por lo que he entendido la función mostrara 0 si no es la última fila o - si es la última fila a pesar de introducir un número aleatorio en esa posición...
Código: C
  1.  
  2. void ini_jugadas(int matriz[8][4]){
  3.     srand (time(NULL));
  4.     for (int filas=0; filas<8; filas++) {
  5.         printf("n%d",filas+1);
  6.         for (int columnas=0; columnas<4; columnas++) {
  7.             if(filas==7){
  8.             matriz[filas][columnas]=gener_num();
  9.             printf(" -");
  10.             }else{
  11.             matriz[filas][columnas]=0;
  12.             printf(" 0");
  13.             }
  14.         }
  15.     }
  16. }
  17.  
  18.  

Diego21

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Problema con Funciones
« Respuesta #2 en: Martes 24 de Mayo de 2011, 20:25 »
0
Si, tienes razón me va bien, pero y si quiero a partir de otra función almacenar 4 números en cada fila de la función (anterior) ini_jugadas.
He estado intentándolo bajo condiciones ... Número de intentos sean  7 (solo quedan 7 filas disponibles)  He puesto solo las condiciones porque no se como almacenarlos en las filas de otra función.

void lee_jugada(int matriz[8][4])
{
int intentos=0, aciertos=0;
while(intentos<8){
if(intentos!=0)
{
printf("nIntroduce un 4 numeros del 1 al 6 ");
}
}
}

perepe

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Problema con Funciones
« Respuesta #3 en: Martes 24 de Mayo de 2011, 21:11 »
0
La función del compañero ya almacena 4 números en cada fila, y no entiendo lo que pides ahora.

Diego21

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Problema con Funciones
« Respuesta #4 en: Martes 24 de Mayo de 2011, 21:44 »
0
La función Ini_jugadas solo almacena en la FIla 8 el número aleatorio de la 1º función gener_num,  lo que no se como hacer con las condiciones anteriores(post anterior) es que el programa pide 4 números y se almacenen en las filas de la función Ini_jugadas( en lo espacios que están llenos de ceros).

Ejemplo:
Está es la matriz
1 0000
2 0000
3 0000
4 0000
5 0000
6 0000
7 0000
8 - - - -

El programa pide 4 números ( ejemplo el usuario ingresa los números 4 5 6 7)
Esos números deben aparecer así :

1 4567
2 0000
3 0000
4 0000
5 0000
6 0000
7 0000
8 - - - -

Mi pregunta es como coloco los números ingresados por el usuario en filas de otra función.

ssaammuu

  • Miembro activo
  • **
  • Mensajes: 41
  • Nacionalidad: es
    • Ver Perfil
    • http://desarrollodejuegos.net
Re: Problema con Funciones
« Respuesta #5 en: Miércoles 25 de Mayo de 2011, 02:31 »
0
No se si he entendido bien pero...
Código: C
  1.  
  2. matriz[0][0]=4;
  3. matriz[0][1]=5;
  4. matriz[0][2]=6;
  5. matriz[0][3]=7;
  6.  
  7.  

 :huh:

Diego21

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Problema con Funciones
« Respuesta #6 en: Miércoles 25 de Mayo de 2011, 23:45 »
0
Si pero el usuario debe ingresar 4 números Ejemplo ( 1234) y esos se deben guardar en la fila 0, luego el usuario vuelve a ingresar otra combinación ejemplo (2345) y se guarda en la fila 1 Así hasta llenar la Función ini_jugadas(que esta iniciada en ceros excepto la fila 8 que está la combinación aleatoria)
el usuario solo tiene 7 intentos(  así completar la matriz de 8x4)


Ejemplo:
Ingrese combinación
2345
1 2 3 4 5    
2 0 0 0 0
3 0 0 0 0
4 0 0 0 0
5 0 0 0 0
6 0 0 0 0
7 0 0 0 0
8 - - - - ( Combinación aleatoria)


Siguiente combinación:
3254

1 2 3 4 5    
2 3 2 5 4
3 0 0 0 0
4 0 0 0 0
5 0 0 0 0
6 0 0 0 0
7 0 0 0 0
8 - - - -

Estaba haciendo esta función pero no me para de pedir datos:

void lee_jugada(int matriz[8][4])
{
int i,j, intentos=0;
while(intentos<8)
printf("Introduce una jugada: n");
for (i=0; i<8; i++){
for(j=0;j<4;j++)
scanf("%d", &matriz[j]);
}    

Aparte de esto tengo otra función  la cuál inicia la matriz 8x4 con (-) rayas . Tengo que poner esta matriz al lado de la otra (son dos funciones)
cuando llamo a la función en main se pone debajo.
Ejemplo:
Así tiene que aparecer pero me aparece una debajo de otra.

1 2 3 4 5       - - - -
2 3 2 5 4       - - - -
3 0 0 0 0       - - - -  
4 0 0 0 0        - - - -
5 0 0 0 0        - - - -
6 0 0 0 0        - - - -
7 0 0 0 0        - - - -
8 - - - -          - - - -



void ini_valoracion(int matriz[8][4])
{
     for (int filas=0; filas<8; filas++) {
        printf("n");
        for (int columnas=0; columnas<4; columnas++) {
            matriz[filas][columnas]= '-';

            }
      }
}

perepe

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Problema con Funciones
« Respuesta #7 en: Viernes 27 de Mayo de 2011, 20:03 »
0
recorres la matriz por filas (menos la ultima) y pides 4 numeros por iteración, luego rellenas la ultima con numeros aleatorios y listo, no se donde esta el problema.