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. Cuando lo compilo empieza tabla_mult[0][0]=1 1 1//resultado luego salta a tabla_mult[1][2] ¿por qué no aparece tabla_mult[0][1]?...

  #31 (permalink)  
Antiguo 27/08/2010, 11:46
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Cuando lo compilo empieza tabla_mult[0][0]=1
1
1//resultado
luego salta a tabla_mult[1][2] ¿por qué no aparece tabla_mult[0][1]?
  #32 (permalink)  
Antiguo 27/08/2010, 13:59
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 10 meses
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

Porque en el scanf estas modificando los valores de las variables "i, "j" que son los contadores... al cambiarselo a 1,1 respectivamente cuyando termina el ciclo se produce la sentecia j++ y los nuevos valores son 1,2 respectivamente.
  #33 (permalink)  
Antiguo 27/08/2010, 15:31
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

¿Cómo puedo hacer para que muestre [0][1] hasta [0][9]?
  #34 (permalink)  
Antiguo 27/08/2010, 15:38
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 10 meses
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

utiliza en el scanf otras variables que no sean i,j.....
  #35 (permalink)  
Antiguo 27/08/2010, 15:57
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

He hecho esto, pero el resultado que me sale es incorrecto:

Ejemplo: tabla_mult[0][0]=1
1
4606104
tabla_mult[0][1]=1
2
65
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 a, b;
  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", &a, &b);
  13. printf("%d\n", tabla_mult[i-1][j-1]);
  14. }
  15. }
  16. }
  #36 (permalink)  
Antiguo 27/08/2010, 16:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 186
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: tabla de multiplicar usando matrices

a y b tienen que tener unos valores dados por ti...
  #37 (permalink)  
Antiguo 27/08/2010, 16:58
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 10 meses
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

A la hora de imprimir tambien debes modificar los indices:

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 a, b;
  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", &a, &b);
  13. printf("%d\n", tabla_mult[a-1][b-1]);
  14. }
  15. }
  16. }
  #38 (permalink)  
Antiguo 28/08/2010, 06:35
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

He añadido el do-while para cuando me canse de introducir números poder salir del programa, pero cuando me pregunta ¿salir? y pongo 's' continúa recorriendo la matriz no sale del bucle, ¿por qué?. Otra cosa, he comprobado que sea cual sea el valor que ponga a la variable a y b funciona correctamente ¿por qué?, cuando hacemos esto estamos inicializando ¿no? ¿por qué ponemos valores a las variables a y b?. Infinitas gracias el programa funciona como yo quería, sois unos cracks de la programación.

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 a=2, b=1;
  8. char final='n';
  9. do{
  10.    for(i=0; i<10; i++){
  11.       for(j=0; j<10; j++){
  12.          tabla_mult[i][j]=(i+1)*(j+1);
  13.          printf("tabla mult[%d][%d]= ",i,j);
  14.          scanf("%d %d", &a, &b);
  15.          printf("%d\n", tabla_mult[a-1][b-1]);
  16.          printf("¿Salir? (s/n)");
  17.          scanf("%1s", &final);
  18.       }
  19.    }
  20. }while((final != 's') && (final != 'S') && (i<10) && (j<10));
  21. }
  #39 (permalink)  
Antiguo 28/08/2010, 13:11
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

¿Podéis ayudarme, por favor? Gracias.
  #40 (permalink)  
Antiguo 28/08/2010, 13:35
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 10 meses
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

Ni siete horas dejaste pasar....tenes que esperar un poco...no siempre hay gente viendo el foro que te pueda ayudar!!!

Al precionar la s de salida no sale porque primero debe esperar que termine los dos for para chequear la condicion del While...
  #41 (permalink)  
Antiguo 28/08/2010, 15:08
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

¿Qué hago para salir del programa?
  #42 (permalink)  
Antiguo 30/08/2010, 05:42
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Empezamos por la tabla del 1, la instrucción tabla_mult[i][j]=(i+1)*(j+1) ¿qué hace para que se pueda ejecutar correctamente la tabla del 1 y que valores toman la variable i y j que están entre paréntesis?
  #43 (permalink)  
Antiguo 30/08/2010, 09:36
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 8 meses
Puntos: 61
Respuesta: tabla de multiplicar usando matrices

¿que impide que agregues un printf justo antes para saber la respuesta?
  #44 (permalink)  
Antiguo 30/08/2010, 10:00
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Lo que quiero es no tener que completar las 10 tablas de multiplicar y en el momento que me canse de introducir datos poder salir del programa. He probado con el do-while, pero no me sale ya que continúa recorriendo la matriz.

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 a=2, b=1;
  8. char final='n';
  9. do{
  10.    for(i=0; i<10; i++){
  11.       for(j=0; j<10; j++){
  12.          tabla_mult[i][j]=(i+1)*(j+1);
  13.          printf("tabla mult[%d][%d]= ",i,j);
  14.          scanf("%d %d", &a, &b);
  15.          printf("%d\n", tabla_mult[a-1][b-1]);
  16.          printf("¿Salir? (s/n)");
  17.          scanf("%1s", &final);
  18.       }
  19.    }
  20. }while((final != 's') && (final != 'S') && (i<10) && (j<10));
  21. }

Última edición por minette1988; 30/08/2010 a las 10:40
  #45 (permalink)  
Antiguo 30/08/2010, 11:02
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Con respecto al problema que planteo de que no puedo salir del programa cuando yo quiero, he probado esto otro pero me pasa esto:

tabla mult[0][0]=1
1
1
tabla mult[0][0]
En lugar de pasar a [0][1] vuelve a [0][0].

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 a, b;
  8.         char final = 'n';
  9.        
  10.         i=0;
  11.         j=0;
  12.         while((final != 's') && (final != 'S') && (i<10) && (j<10)){
  13.               tabla_mult[i][j]=(i+1)*(j+1);
  14.               printf("tabla mult[%d][%d]= ",i,j);
  15.               scanf("%d %d", &a, &b);
  16.               printf("%d\n", tabla_mult[a-1][b-1]);
  17.               printf("¿Salir? (s/n) ");
  18.               scanf("%1s", &final);
  19.            }
  20.          
  21.         getchar();
  22.         getchar();
  23. }
  #46 (permalink)  
Antiguo 30/08/2010, 11:06
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 10 meses
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

te falta aumentar los indices i,j que antes de lo hacia de forma indirecta el for...
  #47 (permalink)  
Antiguo 30/08/2010, 11:18
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Después del último scanf he puesto i++; y debajo j++, pero cuando lo compilo pasa esto:

tabla mult[0][0]=1
1
1
tabla mult[1][1] en lugar de poner [0][1]
  #48 (permalink)  
Antiguo 30/08/2010, 11:21
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 10 meses
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

pasa que aho crecen los dos al mismo tiempo. Tienes que hacerlos crecer de forma separada... osea... este es un ejemplo no se se concuerda con tu codigo:

i++;
if (i == 10){
i = 0;
j++;
}


Trata de que concuarde con tu codigo....
  #49 (permalink)  
Antiguo 31/08/2010, 05:11
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

He probado esto, pero sólo puedo calcular la tabla del 1 ya que cuando me pregunta ¿salir? (s/n) pongo 'n' para empezar con la tabla del 2 pero sale del programa

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 a, b;
  8.         char final = 'n';
  9.        
  10.         i=0;
  11.         j=0;
  12.         while((final != 's') && (final != 'S') && (i<10) && (j<10)){
  13.               tabla_mult[i][j]=(i+1)*(j+1);
  14.               printf("tabla mult[%d][%d]= ",i,j);
  15.               scanf("%d %d", &a, &b);
  16.               printf("%d\n", tabla_mult[a-1][b-1]);
  17.               printf("¿Salir? (s/n) ");
  18.               scanf("%1s", &final);
  19.               if(i<10){
  20.                  j++;
  21.               }                      
  22.        }
  23.        
  24.         getchar();
  25.         getchar();
  26. }

Última edición por minette1988; 31/08/2010 a las 05:40
  #50 (permalink)  
Antiguo 31/08/2010, 12:59
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 10 meses
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

Es muy logico el error...tenes que pensar un poquito antes de preguntar.... fiajte que te falta la sentencia i=0; adentro del if para que la variable o vuelva a cero y se aumente j en uno....


Tenes que empezar a buscarle sentido a las cosas...sino lo unico que estas haciendo es copiar y pegar codigos que te vamos pasando y en definitiva vos no haces nada...
  #51 (permalink)  
Antiguo 31/08/2010, 14:23
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

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.         int a, b;
  8.         char final = 'n';
  9.        
  10.         i=0;
  11.         j=0;
  12.         while((final != 's') && (final != 'S') && (i<10) && (j<10)){
  13.               tabla_mult[i][j]=(i+1)*(j+1);
  14.               printf("tabla mult[%d][%d]= ",i,j);
  15.               scanf("%d %d", &a, &b);
  16.               printf("%d\n", tabla_mult[a-1][b-1]);
  17.               printf("¿Salir? (s/n) ");
  18.               scanf("%1s", &final);
  19.               if(i<10){
  20.                  i=0;  
  21.                  j++;
  22.               }                      
  23.        }
  24.        
  25.         getchar();
  26.         getchar();
  27. }
  #52 (permalink)  
Antiguo 31/08/2010, 15:05
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 10 meses
Puntos: 228
Respuesta: tabla de multiplicar usando matrices

Es obvio porque la variable i nunca aumenta.... fiajte en el ejemplo que yo te di...estaba todo especificado...

la i aumenta afuera del if...dentro de esta la i se iguala a cero y la j aumenta en uno...

Ademas creeria por la forma en que los queres mostar debes invertir el aumento...la "j" aumenta afuera y es la "i" que aumenta dentro...
  #53 (permalink)  
Antiguo 31/08/2010, 15:41
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

No me sale.

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 a, b;
  8.         char final = 'n';
  9.        
  10.         i=0;
  11.         j=0;
  12.         while((final != 's') && (final != 'S') && (i<10) && (j<10)){
  13.               tabla_mult[i][j]=(i+1)*(j+1);
  14.               printf("tabla mult[%d][%d]= ",i,j);
  15.               scanf("%d %d", &a, &b);
  16.               printf("%d\n", tabla_mult[a-1][b-1]);
  17.               printf("¿Salir? (s/n) ");
  18.               scanf("%1s", &final);
  19.               j++;
  20.               if(j==0){
  21.                  i++;
  22.               }                      
  23.        }
  24.        
  25.         getchar();
  26.         getchar();
  27. }
  #54 (permalink)  
Antiguo 02/09/2010, 04:13
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Ayudadme, por favor.
  #55 (permalink)  
Antiguo 02/09/2010, 17:47
 
Fecha de Ingreso: julio-2010
Mensajes: 153
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: tabla de multiplicar usando matrices

o tienes severos problemas de lógica, o simplemente necesitas leer un libro!
  #56 (permalink)  
Antiguo 03/09/2010, 04:08
 
Fecha de Ingreso: septiembre-2010
Mensajes: 60
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: tabla de multiplicar usando matrices

No es por trolear, peroooo ¡¿54 respuestas para esta pregunta?! Esto es todo un FAILperson...

Y para que veais que no troleo, doy parte de respuesta:

Mira la condiciones y el estado de las variables a la entrada del bucle, el estado de las variables al final de cada ciclo, y si puede o no volver a entrar en el bucle. (En concreto i y j simpre crecen, así que tras 10 ciclos...)

No sé por qué respondo, porque si quien pregunta es de 1988, yo creo que más le vale dejarlo porque no es lo suyo... es cuestión de lógica y secuencialidad. Una vez tuve un alumno que no tenía estas capacidades. Fue frustrante xD
  #57 (permalink)  
Antiguo 03/09/2010, 06:13
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 15 años
Puntos: 0
Respuesta: tabla de multiplicar usando matrices

Vaya, no dudo que tengas razón: sólo que podrías haber hablado sin insultar. Yo no tendré ni idea de informática, pero por lo menos no doy muestras de una ruindad tan grave como tú. Siento compasión por tu madre y tu familia por el tormento de haberte traido al mundo y soportarte con agonía. La verdad es que los subhombres como tu deberían estar muertos, pues hacen del mundo un infierno. Si no fueses un cobarde de mierda no te hubieses metido con alguien que no te ha hecho nada y que no puede defenderse. Lo siento por ti y los que estén a tu alrededor.
  #58 (permalink)  
Antiguo 03/09/2010, 07:21
 
Fecha de Ingreso: septiembre-2010
Mensajes: 60
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: tabla de multiplicar usando matrices

Cita:
Iniciado por minette1988 Ver Mensaje
Vaya, no dudo que tengas razón: sólo que podrías haber hablado sin insultar. Yo no tendré ni idea de informática, pero por lo menos no doy muestras de una ruindad tan grave como tú. Siento compasión por tu madre y tu familia por el tormento de haberte traido al mundo y soportarte con agonía. La verdad es que los subhombres como tu deberían estar muertos, pues hacen del mundo un infierno. Si no fueses un cobarde de mierda no te hubieses metido con alguien que no te ha hecho nada y que no puede defenderse. Lo siento por ti y los que estén a tu alrededor.
Guau. Lo que es vergonzoso es responder cosas como "No me sale" (refiriéndose a los cambios indicados por otro), "No funciona" (refiriendose a los cambios indicados por otro), "¿qué hago para salir del programa?" (no hay más que leer el código para darse cuenta), "¿cómo quedaría el último programa que he publicado?" (poco has publicado, que modificar al tuntun no sirve de mucho).
Si quieres que alguien te lo haga, puedes pedírselo a un pagafantas. Pero lo que sí que es verdaderamente ruin por tu parte es no hacer cosas por tu parte y esperar a que otros lo hagan. Porque leer el código no es algo tan difícil.
¡Ah! ¡Que no es tu código! (como se ve en otros post, en los que tampoco es tuyo). Pues no te lo adjudiques. Comienza tus posts con: "He encontrado este código por ahí y lo he pegado, y no entiendo lo que hace".
Si tienes 22 años, hay cierto problema que puedes comentar de antemano. Si tienes 14 o 16, no hay problema, se te redirige a lo que necesites para entenderlo.
Pero no te preocupes. Yo sigo siendo positivo, como siempre. Lee estos manuales:

http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C

http://www.programatium.com/c.htm

http://www.regnumonline.com.ar/forum/showthread.php?t=49766

http://www.google.com/search?client=ubuntu&channel=fs&q=la+especificaci% C3%B3n+es+importante%2C+la+gente+no+lee+la+mente&i e=utf-8&oe=utf-8

Porque a ver si me explicas ahora qué significa:
Cita:
Iniciado por minette1988 Ver Mensaje
El siguiente programa consiste en introducir dos números de teclado y mostrar su respectiva tabla de multiplicar:
Cuando la tabla de multiplicar es de un número. Un solo número. No dos, ni tres. Uno.
Tal vez quieras mostrar las tablas de ambos números. Pues muy bien. Ahí va (y programado todo en una sola función para que no parezca encima que me voy de sobrado utilizando llamadas a funciones):

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

Y encima te quejarás.

Última edición por abacusar; 03/09/2010 a las 08:07
  #59 (permalink)  
Antiguo 06/09/2010, 06:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 606
Antigüedad: 16 años, 6 meses
Puntos: 11
Respuesta: tabla de multiplicar usando matrices

no se pero me da que está expresión está logicamente mal construida:

Código C:
Ver original
  1. while((final != 's') && (final != 'S') && (i<10) && (j<10)){

Creo debería ser esta corregirme si me equivoco:
Código C:
Ver original
  1. while((final != 's') || (final != 'S') ||( (i<10) && (j<10))){

Última edición por trevol; 06/09/2010 a las 06:43

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 15:21.