Ejercicios de Estructuras Repetitivas

    Ejemplos resueltos de for / while ...

1. Elaborar un programa que muestre  los numeros pares comprendidos entre 10 y 20 inclusive

#include<stdio.h>
main()
{
int i;
printf("Los numeros pares entre 10 y 20 inclusive son: \n");
for(i=10;i<=20;i=i+2)
    printf("%d \n",i);
return 0;
}

2. Elaborar un programa que muestre  los numeros pares comprendidos entre 20 y 10 inclusive
(orden descendente).

# include<stdio.h>
main()
{
int i;
printf("Los numeros pares entre 20 y 10 inclusive son: \n");
for(i=20;i>=10;i=i-2)
    printf("%d \n",i);
return 0;
}

3. Mostrar la tabla de caracteres ASCII a partir del Código 32 (el espacio en blanco) hasta el Código 164 (o sea la ñ) sin incluir las minúsculas (rango del 97 al 122)

# include<stdio.h>
main()
{
int i;
printf("Los Caracteres ASCII son: \n");
for(i=32;i<=164;i++)  {
    if(i<97 || i>122)
        printf("%c %d \t",i,i);
    }
return 0;
}

4. Elaborar un programa que calcule la suma de los números multiplos de 3 a partir del número 9 y finaliza en el número 45, no deben incluirse en la suma los números comprendidos entre 21 y 27.

# include<stdio.h>
main()
{
int i,s;
s=0;
printf("Suma de los multiplos de 3: \n");
for(i=9;i<=45;i+=3)  {
    if(i<21 || i>27)
        s = s + i;
    }
printf("la suma es %d \n",s);
return 0;
}

5. Elaborar un programa que calcule la suma de los números multiplos de 3 y 7  a partir del número 9 y finaliza en el numero 45, no deben incluirse en la suma los números comprendidos entre 21 y 27.

# include<stdio.h>
main()
{
int i,m3,m7,s;
m3=0;
m7=0;
printf("Suma de los múltiplos de 3 y 7: \n");
for(i=9;i<=45;i++) {
  if(i<21 || i>27) {
    if (i%3 == 0) { m3 +=i;}
    if (i%7 == 0) { m7 +=i;}
  }
}
s = m3 + m7;
printf("la suma es %d \n",s);
return 0;
}

6. Generalizar el caso:  
Elaborar un programa que calcule la suma de los números multiplos de M y N  a partir del número X y finaliza en el numero Y, no deben incluirse en la suma los números comprendidos entre A y B.
use scanf para ingresar los datos a las variables M,N,X,Y,A y B 

# include<stdio.h>
main()
{
int m,n,x,y,a,b;

int i,mm,mn,s;
mm=0;
mn=0;

printf("Ingrese los valores que representan a los multiplos \n");
scanf("%d %d",m,n);

printf("Ingrese el rango desde-hasta \n");
scanf("%d %d",x,y);

printf("Ingrese el rango de exclusion desde-hasta \n");
scanf("%d %d",a,b);

printf("Suma de los múltiplos de %d y %d: \n",m,n);
for(i=x;i<=y;i++) {
  if(i<a || i>b) {
    if (i%3 == 0) {
mm +=i;}
    if (i%7 == 0) { mn +=i;}
  }
}
s = mm + mn;
printf("la suma es %d \n",s);
return 0;
}

OTROS PROGRAMAS COMPLEMENTARIOS 
QUE PUEDEN AYUDARNOS EN LAS ESTRUCTURAS REPETITIVAS

PROGRAMA QUE DEMUESTRA EL USO DE getchar()
esta funcion permite ingresar varios caracteres y  da por terminado el ingreso cuando se presiona la tecla ENTER o sea \n      - getchar( ) esta definida en "stdio.h"
Tengase en cuenta que solo se memorizará la primera tecla presionada

#include <stdio.h>
main()
{
int i;
char ch;
printf("Ingresar un texto : \n");
ch = getchar();
printf("\n la primera tecla pulsada fue %c \n",ch);
return 0;
}

EJEMPLO DE COMO SE DEBE INGRESAR UN CARACTER USANDO getche()

#include <stdio.h>
#include <conio.h>
/* cuando quieras ingresar un caracter solamente puedes 
la funcion usar getche()*/

main()
{
    char ch;
    printf("Ingrese un caracter : ");
    ch = getche();
    printf("\nIngresaste : %c \n", ch);
    return 0;
}
// - observa que la tecla pulsada es la que se mostrará
// - getche() esta declarada en conio.h por eso debemos incluir  
//   la linea #include <conio.h>
// - tambien debemos incluir stdio.h porque alli 
//       se encuentra declarada printf

PROGRAMA PARA INGRESAR VARIOS CARACTERES USANDO getche()
el programa continuara ingresando texto hasta que se presione k

#include <stdio.h>
#include <conio.h>
main()
{
int i;
char ch;
i = 0;
printf("Ingresar caracteres hasta presionar k : \n");
while(i == 0) {
ch = getche();
if(ch == 'k') i=1;
}
printf("\n terminaste \n");
printf("\n la ultima tecla presionada fue %c \n",ch);
return 0;
}


Ejercicios Propuestos con For  / While
los siguientes ejercicios deberán ser resueltos por partida doble: una solución con "for", otra con "while"
1. Determinar el numero mayor de 10 numeros ingresados

2. Determinar el numero menor de 12 numeros ingresados

3. Calcular el factorial de un número dado (El programa solo admite datos entre 3 y 8)

4. Implemente el siguiente juego: el programa seleccionará un número aleatorio entre 0 y 100 y el jugador debe acertarlo. En cada intento el jugador propondrá una solución y se le informará si el número a acertar es menor o mayor que el propuesto. El juego termina cuando se acierte la cifra o halla realizado un máximo de 12 intentos en cuyo caso se le mostrará al jugador la calificación obtenida según la siguiente tabla:

Número de intentos       Categoría
1-3                                  Suertudo
4-6                                  Genio
7                                     No está mal
8                                     Se puede mejorar
>= 9                                Que pasa amigo

5. Realizar un programa que cuente las vocales cuando se ingresa una cadena de textos con getchar() 

6. Idem al anterior pero contar las consonantes

home