Foros del Web » Programación para mayores de 30 ;) » C/C++ »

tabla de multiplicar usando matrices

Estas en el tema de tabla de multiplicar usando matrices en el foro de C/C++ en Foros del Web. El siguiente programa consiste en introducir dos números de teclado y mostrar su respectiva tabla de multiplicar: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C: Ver original #include <stdio.h> ...

  #1 (permalink)  
Antiguo 21/08/2010, 05:46
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
tabla de multiplicar usando matrices

El siguiente programa consiste en introducir dos números de teclado y mostrar su respectiva tabla de multiplicar:


Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.     int tabla_mult[10][10];
  6.     int i,j;
  7.    
  8.     for(i=0; i<10; i++)
  9.        for(j=0; j<10; j++)
  10.           tabla_mult[i][j]=(i+1)*(j+1);
  11.          
  12.     do{
  13.         printf("Tabla mult[%d][%d]= ", i,j);
  14.         scanf("%d %d", &tabla_mult[i][j]);
  15.         if((i>0) && (i<=10) && (j>0) && (j<=10))
  16.     }while((i>0) && (j>0));
  17.    
  18.     for(i=0; i<10; i++)
  19.         for(j=0; j<10; j++)
  20.            printf("%d\n", tabla_mult[i-1][j-1]);
  21.     getchar();
  22.     getchar();      
  23. }

Me da error en la línea 16: syntax error before '}' token.
  #2 (permalink)  
Antiguo 21/08/2010, 07:24
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

Fijate que en la linea 15 tenes una expresion If, pero a continuacion no viene ninguna sentencia anidada a el... Deberias chequear eso!
  #3 (permalink)  
Antiguo 21/08/2010, 07:55
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

He añadido esto, pero no funciona y en vez de salirme entre corchetes [0][0] me sale [10][10]¿por qué?


Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.     int tabla_mult[10][10];
  6.     int i,j;
  7.    
  8.     for(i=0; i<10; i++)
  9.        for(j=0; j<10; j++)
  10.           tabla_mult[i][j]=(i+1)*(j+1);
  11.          
  12.     do{
  13.         printf("Tabla mult[%d][%d]= ", i,j);
  14.         scanf("%d %d", &tabla_mult[i][j]);
  15.         if((i>0) && (i<=10) && (j>0) && (j<=10)){
  16.            i++;
  17.            j++;
  18.         }
  19.     }while((i>0) && (j>0));
  20.    
  21.     for(i=0; i<10; i++)
  22.         for(j=0; j<10; j++)
  23.            printf("%d\n", tabla_mult[i-1][j-1]);
  24.     getchar();
  25.     getchar();      
  26. }
  #4 (permalink)  
Antiguo 22/08/2010, 14:01
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Aquí lo que pretendo es introducir de teclado un número comprendido entre el 2 y el 10(filas) saltándome el 1 y multiplicarlo por el 1 hasta 10(columnas), pero no funciona. Espero haberme explicado bien. ¿Pueden ayudarme a encontrar el fallo?
  #5 (permalink)  
Antiguo 22/08/2010, 18:45
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
Respuesta: tabla de multiplicar usando matrices

por que imprimes i y j antes de que el usuario introduzca los valores??, esta bien confuso tu codigo, explica como quieres que funcione y los resultados que esperas y tratare de ayudarte.
__________________
si tienes entre 18 y 20 años... entonces tienes 19 años xD
  #6 (permalink)  
Antiguo 23/08/2010, 01:57
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: tabla de multiplicar usando matrices

Como dice Tikitios, el código es confuso y no indicas exactamente lo que quieres. Te comento algunos errores que he visto.

Primero, cuando entras en el bucle do, lo primero que haces es imprimir los valores de i y j. Ambas variables vienen de ser índices de un bucle for, con lo que su valor es el valor final del bucle (10 en este caso, para ambas). Por eso te sale [10][10] en lugar de [0][0].

A continuación, dentro del bucle do, estás pidiendo dos valores enteros pero sólo estás guardando uno, el primero de ellos, y además en tabla_mult[10][10], que corresponde a un elemento de tu array bidimensional que no existe. Esto puede acarrearte problemas serios (no sabes dónde estás escribiendo la memoria, y eso puede acarrear consecuencias graves).

En el bucle for del final, comienzas por 0 para i y j, pero luego estás imprimiendo tabla_mult[i-1][j-1]. Esto hace que en la primera iteración intentes escribir el valor de tabla_mult[-1][-1], que obviamente no existe y que, en el mejor de los casos, te imprimirá cosas sin sentido.

Saludos,
  #7 (permalink)  
Antiguo 23/08/2010, 05:47
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Lo primero que quiero es hacer la tabla del 2, luego la del 3 y así hasta el 10. La tabla del 1 me la quiero saltar ya que es una tontería hacerla. Como se trata de una matriz:

|_ 1_2_3_4__5__6__7__8___9__10_
1 |
2 | 2 4 6 8 10 12 14 16 18 20
3 | 3 6 9 12 15 18 21 24 27 30
4 |
5 |
6 |
7 |
8 |
9 |
10 |

¿Cómo debo empezar el programa?

Última edición por minette1988; 23/08/2010 a las 05:55
  #8 (permalink)  
Antiguo 23/08/2010, 06:55
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

He hecho esto, pero no funciona:

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.     int tabla_mult[10][10];
  6.     int i,j;
  7.    
  8.   do{
  9.     for(i=0; i<10; i++){
  10.        for(j=0; j<10; j++){
  11.           tabla_mult[i][j]=(i+1)*(j+1);
  12.           printf("tabla_mult[%d][%d]= ", i, j);
  13.           scanf("%d %d", &tabla_mult[i][j]);
  14.        }
  15.     }
  16.   }while((i>0) && (i<=10) && (j>0) && (j<=10));
  17.     for(i=0; i<10; i++)
  18.        for(j=0; j<10; j++)
  19.           printf("%d\n", tabla_mult[i][j]);
  20.     getchar();
  21.     getchar();      
  22. }
  #9 (permalink)  
Antiguo 24/08/2010, 01:29
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: tabla de multiplicar usando matrices

Si, simplemente, quieres generar las tablas de multiplicar, lo que tienes es básicamente correcto, salvo un par de cosillas.

En primer lugar, no le veo sentidu al bucle do-while que has puesto en la generación de la tabla. Con los bucles for para i y j es suficiente.

En segundo lugar, haces un scanf para dos valores enteros dentro del bucle interno, pero solamente almacenas uno, además en uno de los elementos del array con la tabla de multiplicar. Esto no tiene sentido, estarías machacando el valor previamente generado.

Me parece que lo que quieres es generar las tablas de multiplicar y, luego, introducir un número para que te dé la tabla de ese número. Por ejemplo, introducir el 3 y que salga

3 6 9 12 (etc)

Si es eso lo que quieres, ya casi lo tienes, sigue estos pasos:

1. Genera las tablas de multiplicar (está hecho correctamente en el listado que pusiste en tu primer post).

2. Pide el número del que quieres la tabla de multiplicar.

3. Imprime la fila correspondiente a ese número.

Esto requiere solamente modificaciones mínimas sobre el primer listado.

Saludos,
  #10 (permalink)  
Antiguo 24/08/2010, 05:27
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Quiero introducir los dos números a multiplicar y que me salga 3, 6, 9, etc.
  #11 (permalink)  
Antiguo 25/08/2010, 02:03
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: tabla de multiplicar usando matrices

Ya tienes generada una tabla de 10x10 elementos, correspondientes a las tablas de multiplicar. Simplemente, pide el primer y segundo número, que serían la fila y columna (i y j, por ejemplo) e imprime el elemento tabla_mult[i-1][j-1].

Saludos,
  #12 (permalink)  
Antiguo 25/08/2010, 04:02
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

He hecho lo siguiente , pero cuando llego a tabla_mult[0][9] y pongo los dos números y le doy a aceptar sigue recorriendo la matriz no se para. No me imprime ningún resultado. Si quiero empezar por tabla_mult[1][0], ¿cómo se lo indico al compilador?.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.     int tabla_mult[10][10];
  6.     int i,j;
  7.     int res;
  8.    
  9.     for(i=0; i<10; i++){
  10.        for(j=0; j<10; j++){
  11.           printf("Tabla mult[%d][%d]= ", i,j);
  12.           scanf("%d %d", &tabla_mult[i][j], &tabla_mult[i][j]);
  13.          
  14.        }
  15.     }
  16.    
  17.     for(i=0; i<10; i++)
  18.        for(j=0; j<10; j++){
  19.            res=i*j;
  20.         }
  21.            printf("%d %d\n",tabla_mult[i-1][j-1], res);
  22.     getchar();
  23.     getchar();      
  24. }

Última edición por minette1988; 25/08/2010 a las 04:11
  #13 (permalink)  
Antiguo 25/08/2010, 05:42
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: tabla de multiplicar usando matrices

En el primer código que posteaste, generas correctamente las tablas de multiplicar del 1 al 10 (líneas 8, 9 y 10).

Después de generada la tabla, es cuando tienes que pedir los dos números a multiplicar. Utiliza estos números como índices de fila y columna para acceder a la tabla:

Código C++:
Ver original
  1. scanf(&#37;d %d", &i, &j);
  2. printf("%d", tabla_mult[i-1][j-1]);

Al último código que has posteado no le veo sentido alguno.
  #14 (permalink)  
Antiguo 25/08/2010, 07:42
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Sigue sin salirme, en lugar de salirme tabla_mult[1][0] para hacer la tabla del 2 me sale tabla_mult[0][0] que es la tabla del 1.


Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.     int tabla_mult[10][10];
  6.     int i,j;
  7.    
  8.     for(i=0; i<10; i++){
  9.        for(j=0; j<10; j++){
  10.           tabla_mult[i][j]=(i+1)*(j+1);
  11.        
  12.           printf("Tabla mult[%d][%d]= ", i,j);
  13.           scanf("%d %d", &i, &j);
  14.        }
  15.     }  
  16.     printf("%d\n", tabla_mult[i-1][j-1]);
  17.     getchar();
  18.     getchar();      
  19. }
  #15 (permalink)  
Antiguo 26/08/2010, 00:20
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: tabla de multiplicar usando matrices

Cuando pides los valores de i y j, lo haces dentro del bucle interno. Estas variables también son las variables de control de los bucles, con lo que cuando introduces un valor cambias las condiciones del bucle. Simplemente, las líneas 12 y 13 (cuando pides los valores de i y j) debes sacarlas fuera de los bucles.

Saludos,
  #16 (permalink)  
Antiguo 26/08/2010, 05:39
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Cuando introduzco los valores fuera del bucle al compilarlo empieza por [10][10] ¿por qué? ¿la instrucción tabla_mult[i][j]=(i+1)*(j+1) no hace que la matriz empiece por [1][0] es que sino no lo entiendo?


Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.     int tabla_mult[10][10];
  6.     int i,j;
  7.    
  8.     for(i=0; i<10; i++){
  9.        for(j=0; j<10; j++){
  10.           tabla_mult[i][j]=(i+1)*(j+1);
  11.        }
  12.     }  
  13.     printf("Tabla mult[%d][%d]= ", i,j);
  14.     scanf("%d %d", &i, &j);
  15.        
  16.    
  17.     printf("%d\n", tabla_mult[i-1][j-1]);
  18.     getchar();
  19.     getchar();      
  20. }
  #17 (permalink)  
Antiguo 26/08/2010, 10:39
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

Empieza por 10,10 porque al final del for las varaibles terminan con ese valor....

Pero el primer printf esta de mas....osea con el primer scanf se pide la posicion de la tabla y luego se imprime con el segundo printf...
  #18 (permalink)  
Antiguo 26/08/2010, 12:09
 
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

A mi me funciona así:

Código:
for(i=0;i<(max-min);i++) //Bucle nombre de tablas (max-min)
		for(j=0;j<10;j++) //Bucle numero de numeros de la tabla (10)
			tabla_mult[min+i][j] = j*(min+i);
siendo min y max los numeros que pido al usuario y i y j variables de apoyo para los fors.

lo mejor sería reservar la matriz con un malloc, en vez de usar memoria estática.
  #19 (permalink)  
Antiguo 26/08/2010, 12:46
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

He quitado el primer printf y pongo para probar 1 Enter 1 y me sale 1, pero luego voy a poner 1 Enter 2 y en el momento que doy a enter desaparece la ventana. No entiendo por qué tengo que quitar el primer printf.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.     int tabla_mult[10][10];
  6.     int i,j;
  7.    
  8.     for(i=0; i<10; i++){
  9.        for(j=0; j<10; j++){
  10.           tabla_mult[i][j]=(i+1)*(j+1);
  11.        }
  12.     }
  13.    
  14.     scanf("%d %d", &i, &j);
  15.        
  16.    
  17.     printf("%d\n", tabla_mult[i-1][j-1]);
  18.     getchar();
  19.     getchar();      
  20. }
  #20 (permalink)  
Antiguo 26/08/2010, 13:37
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

Es que no tiene sentido de mostrar dos variables que se usaron en un ciclo como indices....

Posiblemente lo que queres hacer es mostrar los valores a medida que se va llenendo la tabla, pero en verdad ya nose que es lo que queres hacer.
  #21 (permalink)  
Antiguo 26/08/2010, 13:44
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Sí, quiero mostrar los valores a medida que se va llenando la tabla. ¿Cómo quedaría el programa que he hecho?.
  #22 (permalink)  
Antiguo 26/08/2010, 14:40
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

#include <stdio.h>
#include <stdlib.h>

int main(){
int tabla_mult[10][10];
int i,j;
0
for(i=0; i<10; i++){
for(j=0; j<10; j++){
tabla_mult[i][j]=(i+1)*(j+1);
printf("tabla[%d][%d]=%d",i+1.j+1,tabla_mult[i][j])
}
}

scanf("%d %d", &i, &j);


printf("%d\n", tabla_mult[i-1][j-1]);
getchar();
getchar();
}
  #23 (permalink)  
Antiguo 26/08/2010, 15:35
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Al compilarlo me salen muchos números.
  #24 (permalink)  
Antiguo 26/08/2010, 15:52
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

son los valores que quisiste imprimir!!!!
  #25 (permalink)  
Antiguo 27/08/2010, 05:34
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Quiero imprimir el resultado de la tabla de multiplicar de un número, primero quiero pedir la fila y la columna e introducir los valores a multiplicar. Por ejemplo, tabla de multiplicar del 2: tabla_mult[1][0]=2*1, tabla_mult[1][1]=2*2, tabla_mult[1][2]=2*3, tabla_mult[1][3]=2*4, tabla_mult[1][4]=2*5, tabla_mult[1][5]=2*6, tabla_mult[1][6]=2*7, tabla_mult[1][7]=2*8, tabla_mult[1][8]=2*9, tabla_mult[1][9]=2*10

Una vez hecho esto imprimir el resultado de cada operación.
¿Cómo puedo hacerlo de esta forma?
  #26 (permalink)  
Antiguo 27/08/2010, 07:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Si el programa lo dejo así, me muestra todas las filas desde[0] hasta [9] y todas las columnas desde [0] hasta [9] en las que puedo almacenar las tablas de mutiplicar del 1,2,3,4,5,6,7,8,9 y10.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5. int tabla_mult[10][10];
  6. int i,j;
  7.  
  8. for(i=0; i<10; i++){
  9. for(j=0; j<10; j++){
  10. tabla_mult[i][j]=(i+1)*(j+1);
  11. printf("tabla mult[%d][%d]= ", i, j);
  12. }
  13. }
  14. scanf("%d %d", &i, &j);
  15.  
  16.  
  17. printf("%d\n", tabla_mult[i-1][j-1]);
  18. }

Lo que quiero es poder elegir la tabla de multiplicar al azar, por ejemplo la del 3
y que el programa me muestre tabla_mult[2][0]= y que yo puedo poner 3 Enter 1 Enter y seguidamente me muestre el resultado, pasar al siguiente tabla_mult[2][1]= 3 Enter 2 Enter y mostrar el resultado, así hasta llegar a tabla_mult[2][9]. Si no se puede al azar por orden ¿Cómo puedo hacerlo?

Última edición por minette1988; 27/08/2010 a las 08:01
  #27 (permalink)  
Antiguo 27/08/2010, 09:41
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Con este último programa que os muestro sólo puedo multiplicar dos números y me muestra el resultado correctamente, pero no me deja continuar multiplicando.
  #28 (permalink)  
Antiguo 27/08/2010, 11:11
 
Fecha de Ingreso: noviembre-2009
Mensajes: 186
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: tabla de multiplicar usando matrices

el codigo que pide valores, los multiplica y los muestra tiene que estar puesto dentro de los fors
  #29 (permalink)  
Antiguo 27/08/2010, 11:27
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Entonces, ¿cómo quedaría el último programa que he publicado?
  #30 (permalink)  
Antiguo 27/08/2010, 11:37
 
Fecha de Ingreso: noviembre-2009
Mensajes: 186
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: tabla de multiplicar usando matrices

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5. int tabla_mult[10][10];
  6. int i,j;
  7.  
  8. for(i=0; i<10; i++){
  9. for(j=0; j<10; j++){
  10. tabla_mult[i][j]=(i+1)*(j+1);
  11. printf("tabla mult[%d][%d]= ", i, j);
  12. scanf("%d %d", &i, &j);
  13. printf("%d\n", tabla_mult[i-1][j-1]);
  14. }
  15. }
  16.  
  17.  
  18.  
  19.  
  20. }

Etiquetas: matrices, multiplicar, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:39.