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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


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


Desconectado Desconectado

Mensajes: 1.163


Ju Já!!


Ver Perfil
Duda con declarar variables [C] [Solucionada]
« en: 23 Agosto 2012, 18:48 pm »

Buenas, estoy estudiando C ayudandome del libro "Como programar en C 2º Edición" (es uno de los libros de la chincheta), he de decir que estoy iniciandome el C y si la pregunta es muy tonta pido disculpas, he usado el buscador del foro y no he encontrado nada que me ayude. En un ejercicio se pide que pongas un número y debes formar un cuadrado con asteriscos (*) dependiendo del número, más o menos asteriscos. Este es mi código:

Código
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char *argv[])
  4. {
  5.  int contador = 1, puntos, contador2;
  6.  printf ("Escribe los puntos: ");
  7.  scanf ("%d", &puntos);
  8.  while (contador <= puntos){
  9.        contador2 = 1;
  10.        while (contador2 <= puntos) {
  11.              printf ("*");
  12.              contador2++;
  13.        }
  14.         printf ("\n");
  15.         contador++;
  16.    }
  17.  
  18.  system("PAUSE");
  19.  return 0;
  20. }

Así funciona perfectamente y me he tirado un buen rato dandole vueltas hasta que llegué a esa solución pero es que si lo cambias a:

Código
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char *argv[])
  4. {
  5.  int contador = 1, puntos, contador2 = 1;
  6.  printf ("Escribe los puntos: ");
  7.  scanf ("%d", &puntos);
  8.  while (contador <= puntos){
  9.        while (contador2 <= puntos) {
  10.              printf ("*");
  11.              contador2++;
  12.        }
  13.         printf ("\n");
  14.         contador++;
  15.    }
  16.  
  17.  system("PAUSE");
  18.  return 0;
  19. }

No funciona y no se porque, tiene algo que ver el declarar las variables e inicializarlas en el momento de declararlas? o es por el While? Estoy usando Devc++ como IDE.

EDIT: Sigo dandole vueltas al código y creo que es porque al estar anidados los whiles cuando llega al segundo que es dónde hace uso de la variable contador2 en el primer bucle cambia la variable y en los siguientes bucles ya no es igual, al darle el valor 1 a contador2 antes de empezar el segundo while cuando acaba vuelve a tener valor de 1 y se puede ejecutar de nuevo el segundo while...espero que se me entienda xD

Gracias por leer.


« Última modificación: 28 Agosto 2012, 01:11 am por -- KiLiaN -- » En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: Duda con declarar variables [C]
« Respuesta #1 en: 23 Agosto 2012, 18:57 pm »

como has dicho si que tiene que ver con la declaracion de la variable contador2. en el primer ejemplo funciona bien, ya que para cada "contador" escribes tantos puntos que los cuentas con "contador2", y cuando acabas, pasas a la linea siguiente (contador++) y al contador2 que es quien marca las columnas le vuelves a asignar 1 para que empiece una nueva fila.

en el segundo ejemplo, no haces esto, asi que despues de la primera iteracion del while mayor, contador2 valdra lo que indique la variable "puntos" y nunca mas volvera a entrar en el segundo while. por lo que imprimira 1 linea de asteriscos y luego los saltos de linea que sean.

no se si me explique muy bien... sino coge un papel y un boli, o el bloc de notas, y sigue el flujo del programa para 2 o 3 iteraciones del while y lo veras.

un saludo!

edito: he visto ahora que ya lo has comentado, y yo liandome con la explicacion xD igualmente lo de seguir el flujo del programa te servira para cualquier code que hagas, asi que no esta de mas hacerlo para dudas de este estilo.


« Última modificación: 23 Agosto 2012, 19:00 pm por xiruko » En línea

-- KiLiaN --


Desconectado Desconectado

Mensajes: 1.163


Ju Já!!


Ver Perfil
Re: Duda con declarar variables [C]
« Respuesta #2 en: 23 Agosto 2012, 19:02 pm »

Entonces era como pensaba, muchas gracias ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error al declarar variables. Ayuda
Programación Visual Basic
BenRu 2 1,794 Último mensaje 28 Enero 2006, 20:54 pm
por BenRu
[Duda]Formas para declarar varias variables.
Programación C/C++
777Rubenix777 6 7,451 Último mensaje 16 Octubre 2010, 13:54 pm
por Oblivi0n
¿Declarar variables en PHP?
PHP
dimitrix 2 2,340 Último mensaje 25 Mayo 2012, 04:51 am
por #!drvy
[Resuelto] problema para declarar variables de un formulario
PHP
gAb1 4 2,236 Último mensaje 12 Noviembre 2015, 20:29 pm
por gAb1
Declarar variables infinitas
Scripting
Sentex 7 4,645 Último mensaje 16 Enero 2018, 09:20 am
por PUAROT
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines