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