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

[SOLUCIONADO] Bucles anidados duda

Estas en el tema de Bucles anidados duda en el foro de C/C++ en Foros del Web. Hola chic@s, tengo nuevamente una duda, y es que me estan pidiendo en un ejercicio la siguiente impresion F FE FEDC FEDCB FEDCBA esto es ...
  #1 (permalink)  
Antiguo 03/11/2013, 07:55
Avatar de alejandcc  
Fecha de Ingreso: diciembre-2011
Ubicación: Plasencia
Mensajes: 54
Antigüedad: 12 años, 3 meses
Puntos: 1
Bucles anidados duda

Hola chic@s, tengo nuevamente una duda, y es que me estan pidiendo en un ejercicio la siguiente impresion

F
FE
FEDC
FEDCB
FEDCBA

esto es lo que llevo hecho hasta ahora

#include<stdio.h>
int main(){

int altura;
int i, j;
char ch;
printf("dime la altura\n\n");
scanf("%d", &altura);
printf("\n\n");

for(i=0;i<=altura;i++){
for(ch='f';ch<('f' + i);ch++){
printf("%c", ch);
}
printf("\n");
}
//fin
********************


el problema es que no consigo imprimir los caracteres deseados, ni la cantidad de ellos por fila
Gracias
  #2 (permalink)  
Antiguo 03/11/2013, 09:26
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Bucles anidados duda

Pero que problema tienes?
Te explico como funciona el bucle.
El primer bucle es el que te hace saltar de linea(colunas).
El segundo bucle interno es el que hace las hileras.
Hilera-Hilera-Hilera-Hilera-Hilera-Hilera-Hilera-Hilera-Hilera-...
coluna-
coluna-
coluna-
coluna-

ok?
No hay que liar, El 1º hace saltar la linea mientras el segundo es el que las rellena.
Cuando entras al primer bucle inicias una linea y pasas al bucle interno que las va rellenar.
Mientras el bucle interno no termina no vuelves al externo.
entonces la cosa queda así:
llamas al bucle externo. Este inicia a cero y incrementa uno pasando al segundo bucle o bucle interno.
El bucle interno se ejecuta todas las veces que le digas hasta que la condicion termine. Una vez terminada el bucle interno se debe poner a cero otravez y salta al primero bucle que incrementa en mas uno, ahora vale 2.
seria algo asi
si le hemos dicho que el externo se ejecute 5 veces y el externo 10 quedaria asi:
bucle1:bucle2bucle2bucle2bucle2bucle2bucle2bucle2b ucle2bucle2bucle2
bucle1:bucle2bucle2bucle2bucle2bucle2bucle2bucle2b ucle2bucle2bucle2
bucle1:bucle2bucle2bucle2bucle2bucle2bucle2bucle2b ucle2bucle2bucle2
bucle1:bucle2bucle2bucle2bucle2bucle2bucle2bucle2b ucle2bucle2bucle2
bucle1:bucle2bucle2bucle2bucle2bucle2bucle2bucle2b ucle2bucle2bucle2
Si quieres imprimir letras debes ir incrementando en el interno, por que el externo son la cantidad de lineas que vas rellenar con las letras.

Otra cosa que no has dicho que letras son estas que quieres imprimir, supongo que sea a, b, c...

Si quieres ayuda explica mejor que tienes que hacer, así es difícil ayudarte.
  #3 (permalink)  
Antiguo 03/11/2013, 11:55
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Bucles anidados duda

El problema está en la seleccion de caracteres, si quieres 'bajar' tienes que restar

Código C:
Ver original
  1. ch = 'f'-i;

De todas formas te falta un cotrol de errores para evitar que pongan una altura mayor que la letra de inicio

Código C:
Ver original
  1. altura = 6;
  2. inicial = 'F';
  3.  
  4. limite = inicial - 'A';
  5. if(limite < altura) {
  6.     altura = limite;
  7. }


Ya se que no deberia pero ahi va el bucle:
Código C:
Ver original
  1. for(h = 0; h <= altura; h++) {
  2.     for(w = 0; w <= h; w++) {
  3.         printf("%c", inicial-w);
  4.     }
  5.     printf("\n");
  6. }


Saludos
vosk
  #4 (permalink)  
Antiguo 03/11/2013, 17:53
Avatar de alejandcc  
Fecha de Ingreso: diciembre-2011
Ubicación: Plasencia
Mensajes: 54
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Bucles anidados duda

Gracias a los dos, no llevo mucho programando y la verdad es que creo que si no me das escrito el bucle no lo habría sacado, por lo menos ahora mismo, con mi nivel.
  #5 (permalink)  
Antiguo 05/11/2013, 01:23
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Bucles anidados duda

Mira, mas importante que te lo den masticado es que lo comprendas tu. ¿No?
No se si la has visto antes pero creo que es de grande ayuda.
Esta pagina es sobre c++, es de mucha ayuda por si tienes dudas.
Con ella aprendo a diario, es muy buena referencia.
http://minidosis.org/C++/
Esta por ejemplo se trata de los bucles:
For:
http://minidosis.org/C++/Iteraciones/For/
For Double:
http://minidosis.org/C++/Iteraciones/For%20Doble/
  #6 (permalink)  
Antiguo 05/11/2013, 01:45
Avatar de alejandcc  
Fecha de Ingreso: diciembre-2011
Ubicación: Plasencia
Mensajes: 54
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Bucles anidados duda

Cita:
Iniciado por vangodp Ver Mensaje
Mira, mas importante que te lo den masticado es que lo comprendas tu. ¿No?
No se si la has visto antes pero creo que es de grande ayuda.
Esta pagina es sobre c++, es de mucha ayuda por si tienes dudas.
Con ella aprendo a diario, es muy buena referencia.
http://minidosis.org/C++/
Esta por ejemplo se trata de los bucles:
For:
http://minidosis.org/C++/Iteraciones/For/
For Double:
http://minidosis.org/C++/Iteraciones/For%20Doble/
Ahora si lo entiendo, una vez visto aquí, ojearé las paginas que comentas, aunque yo estoy metido ahora mismo en C.

Etiquetas: anidados, bucles, caracteres, int
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




La zona horaria es GMT -6. Ahora son las 04:34.