elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda con este codigo...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con este codigo...  (Leído 2,237 veces)
RSA

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Duda con este codigo...
« en: 20 Septiembre 2012, 06:12 am »

Buenas gente! Como van? Espero que todo bien! Tengo una duda, como veran a continuacion en el ejercicio, soy principiante, me pide que imprima todas las tablas del 1 al 9, elabore el codigo pero no se si esta bien, ya que al compilar no hace lo que realmente pide el ejercicio, espero alguno pueda decirme si ve algun error o algo, saludos!  ;D

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

main()
{
      int a=1, b=1, total=1;
      while (a<10)
      {
            printf ("%d x %d = %d \n "), b, a, total;
            a=a+1;
            if (a=10)
            {
                     a=1;
                     b=b+1;
            }
            if (b=10)
            {
                     a=100;
            }
            total=a*b;
      }
system ("PAUSE");
return 0;
}


En línea

ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Duda con este codigo...
« Respuesta #1 en: 20 Septiembre 2012, 09:00 am »

Hola RSA.

Necesitas que la variable b tome valores de 1 hasta 10 por cada incremento de la variable a, por lo que vas a necesitar un while anidado para obtenerlos.

Código
  1. #include <stdio.h>
  2.  
  3. main() {
  4.  int a=1, b;
  5.  
  6.  while (a < 10) {
  7.    printf("Tabla del %2d \n------------\n",a);
  8.    b = 0;
  9.    while (b++ < 10)
  10.      printf ("%2d x %2d = %2d \n", b, a, a*b);
  11.    printf("\n");
  12.    a++;
  13.  }
  14.  getchar();
  15.  return 0;
  16. }
  17.  

Saludos.


En línea

SokarTefnut

Desconectado Desconectado

Mensajes: 124



Ver Perfil
Re: Duda con este codigo...
« Respuesta #2 en: 20 Septiembre 2012, 09:25 am »

El printf lo estas usando mal, deberia ser  printf ("%d x %d = %d \n ", b, a, total);
En las lineas resaltadas estas realizando una asignacion de valor, con el operador (=),
deberias utilizar el operador de comparacion (==)


# include <stdio.h>
# include <stdlib.h>
main()
{
      int a=1, b=1, total=1;
      while (a<10)
      {
            printf ("%d x %d = %d \n "), b, a, total; // cambiar por  printf ("%d x %d = %d \n ", b, a, total);
            a=a+1;           // puesdes usar a++
              if (a=10)   // debes utilizar  if (a==10)
            {
                     a=1;
                     b=b+1;  
            }
            if (b=10)        // debes utilizar  if (b==10)
            {
                     a=100;
            }
            total=a*b;
      }
system ("PAUSE");
return 0;
}
« Última modificación: 20 Septiembre 2012, 10:40 am por SokarTefnut » En línea

"Saber romper medidas de seguridad no hace que seas hacker, al igual que saber hacer un puente en un coche no te convierte en un ingeniero de automoción"
-- Eric Raymond -- http://en.wikipedia.org/wiki/Eric_S._Raymond
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Duda con este codigo...
« Respuesta #3 en: 20 Septiembre 2012, 15:42 pm »

Y algo que no te han dicho, y en realidad es una tonteria, pero en C/C++ en vez de a=a + 1; puedes hacer a++.

Saludos.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
RSA

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Duda con este codigo...
« Respuesta #4 en: 20 Septiembre 2012, 17:39 pm »

Hola RSA.

Necesitas que la variable b tome valores de 1 hasta 10 por cada incremento de la variable a, por lo que vas a necesitar un while anidado para obtenerlos.

Código
  1. #include <stdio.h>
  2.  
  3. main() {
  4.  int a=1, b;
  5.  
  6.  while (a < 10) {
  7.    printf("Tabla del %2d \n------------\n",a);
  8.    b = 0;
  9.    while (b++ < 10)
  10.      printf ("%2d x %2d = %2d \n", b, a, a*b);
  11.    printf("\n");
  12.    a++;
  13.  }
  14.  getchar();
  15.  return 0;
  16. }
  17.  

Saludos.

Muchas gracias por tu ayuda! Lo he probado y si, funciona, ahora, para que sirve la siguiente linea? Es que todavia no la hemos dado, o sea supongo que si resuelvo el codigo con cosas que supuestamente no hemos aprendido, no se si me lo acepten...

  getchar();

Saludos!

El printf lo estas usando mal, deberia ser  printf ("%d x %d = %d \n ", b, a, total);
En las lineas resaltadas estas realizando una asignacion de valor, con el operador (=),
deberias utilizar el operador de comparacion (==)


# include <stdio.h>
# include <stdlib.h>
main()
{
      int a=1, b=1, total=1;
      while (a<10)
      {
            printf ("%d x %d = %d \n "), b, a, total; // cambiar por  printf ("%d x %d = %d \n ", b, a, total);
            a=a+1;           // puesdes usar a++
              if (a=10)   // debes utilizar  if (a==10)
            {
                     a=1;
                     b=b+1; 
            }
            if (b=10)        // debes utilizar  if (b==10)
            {
                     a=100;
            }
            total=a*b;
      }
system ("PAUSE");
return 0;
}

Gracias por tu ayuda! Y si, definitivamente el error mas grande era que solo usaba un = y debia ir ==, al cambiarlo me ha funcionado perfectamente, muchisimas gracias!!

Y algo que no te han dicho, y en realidad es una tonteria, pero en C/C++ en vez de a=a + 1; puedes hacer a++.

Saludos.

Puede ser mas comodo, lo sabia pero no suelo usarlo por falta de costumbre, hace unos meses aprendi algo en pseudocodigos y siempre usabamos a<- a+1, por esta cuestion, de usarlo asi, creo que me acostumbre e intento hacerlo asi en c++ pero bueno, capaz me tenga que acostumbrar mas al c++ y dejar de lado las costumbres que aprendi en pseudocodigos y usar mas que nada codigos de este lenguaje, muchisimas gracias crack! Ahora me queda seguir aprendiendo mas cosas, para ir avanzando un poco =)
En línea

ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Duda con este codigo...
« Respuesta #5 en: 20 Septiembre 2012, 18:20 pm »

Citar
para que sirve la siguiente linea?
Hola RSA

getchar() espera un caracter de la entrada estandar, en este caso cumple la misma finalidad que system ("PAUSE").


Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Tengo una duda en este codigo para hacer fuerza bruta en vb.......
Programación Visual Basic
ZaPa 4 6,337 Último mensaje 23 Febrero 2010, 02:12 am
por Nanoc
[Duda] Insertar a este código, Mensaje de Error en caso de...
Programación Visual Basic
Soir 4 2,169 Último mensaje 15 Agosto 2010, 00:15 am
por Fitoschido
Duda con este codigo
Programación Visual Basic
[Kayser] 2 1,641 Último mensaje 26 Enero 2012, 00:15 am
por raul338
[Duda existencial]¿Que pasa en este codigo?
Programación C/C++
0xDani 5 2,365 Último mensaje 10 Julio 2012, 13:47 pm
por 0xDani
Duda con este codigo
Programación C/C++
exanime 6 2,287 Último mensaje 16 Septiembre 2014, 18:30 pm
por flony
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines