[C][?]Como determinar que imprima ciertos caracteres

Iniciado por Jaes, 5 Noviembre 2012, 03:32 AM

0 Miembros y 1 Visitante están viendo este tema.

Jaes

Saludos,

Me gustaría saber (si alguien me puede echar una mano) en como determinar que imprima ciertos carácteres. Por ejemplo:


#define MIN 0
#define MAX 10

void uno() {
int i=0;
for(i=MIN; i<MAX; i++) {
printf("%c\n", i);
}
}


Esto imprimiria el valor de i de 0 a 9  de la tabla ascii (Esto son caracteres de control).Me interesa el algoritmo.

¿Cómo debería hacer para que imprimiera de 0 a 2 y de 6 a 9? ¿Es sencillo o estoy intentando subir peldaños demasiado rápido?

Gracias de antemano.
¿Que qué le debo a los Hombres? A todos ellos Les debo justicia.

Al país de donde vengo debo educación.

¿..Y a Dios..? a Dios le debo la muerte.

naderST

Haces dos bucles uno del 0 al 2 y el otro del 6 al 9?

Jaes

¿Que qué le debo a los Hombres? A todos ellos Les debo justicia.

Al país de donde vengo debo educación.

¿..Y a Dios..? a Dios le debo la muerte.

Jaes

Y gracias por su rápida respuesta.


for(i=MIN; i<MAX; i++) {
                for(j=MIN2; j<MAX2; j++){
printf("%c\n%c\n", i,j);
                }
}

Ahora veo que así planteado no es la solución.Imprimiría 0,6,0,7 ..

¿O entendí mal?

Yo tenía pensado, de 0 a 9, si "i" es menor a 3 y  mayor a 5, imprimir caracter...

¿Podría ser algo así?
¿Que qué le debo a los Hombres? A todos ellos Les debo justicia.

Al país de donde vengo debo educación.

¿..Y a Dios..? a Dios le debo la muerte.

BatchianoISpyxolo

Cita de: Jaes en  5 Noviembre 2012, 04:53 AM
Y gracias por su rápida respuesta.


for(i=MIN; i<MAX; i++) {
                for(j=MIN2; j<MAX2; j++){
printf("%c\n%c\n", i,j);
                }
}

Ahora veo que así planteado no es la solución.Imprimiría 0,6,0,7 ..

¿O entendí mal?

Yo tenía pensado, de 0 a 9, si "i" es menor a 3 y  mayor a 5, imprimir caracter...

¿Podría ser algo así?

Ahí no se sabe que es MIN2 y MAX2

De todas formas es mejor dos bucles separados que hacer un bucle con 10 comparaciones cuando sabes que de 3 a 5 no quieres hacer nada.
Puede que desees aprender a programar desde 0: www.espascal.es

Jaes

¿Esto debería funcionar?

Para probar el código pongo valores que si imprimira

for(i=48; i<91; i++) {
               if ((i>=48)&&(i<58)&&(i>=65)&&(i<91)){
printf("%c\n", i);
}
          }
¿Esto debería funcionar? no me imprime nada.
¿Que qué le debo a los Hombres? A todos ellos Les debo justicia.

Al país de donde vengo debo educación.

¿..Y a Dios..? a Dios le debo la muerte.

HRSLASH

Para que funcione hay que cambiar el AND logico del medio por un OR logico, de esta manera imprimira
el numero si este es >= 48 Y < 58 O >= 65 Y < 91


for(i=48; i<91; i++) {
   if (((i>=48)&&(i<58)) || ((i>=65)&&(i<91)))
       printf("%d\n", i);
}


Saludos!
La televisión es para mi el medio mas instructivo y cultural que conozco, cuando la prenden me voy a leer

leosansan

#7
Cita de: Jaes en  5 Noviembre 2012, 03:32 AM
¿Cómo debería hacer para que imprimiera de 0 a 2 y de 6 a 9? ¿Es sencillo o estoy intentando subir peldaños demasiado rápido?
Para que lo veas mejor he puesto a imprimir enteros:
Código (cpp) [Seleccionar]
#include <stdio.h>

void uno(int MIN, int MAX) ;
void uno(int MIN, int MAX) {
int i;
for(i=MIN; i<=MAX; i++) {
printf("%d   ", i);
}
}

int main(){
   int  MIN1 =0,MAX1 =2,MIN2=6,MAX2= 9;
   uno(MIN1,MAX1);
   puts("\n");
   uno(MIN2,MAX2);
   return 0;
}

Saludos!.

Jaes

Muchas gracias por responder.

Como proponía NaderST el Código de Leonsansan funciona a la perfección. Pero me voy a quedar con el de Hrlash.


Gracias por esta bienvenida tan luminosa.
Mi agradecimiento más sincero por la ayuda recibida,
¿Que qué le debo a los Hombres? A todos ellos Les debo justicia.

Al país de donde vengo debo educación.

¿..Y a Dios..? a Dios le debo la muerte.

BatchianoISpyxolo

El problema del ciclo de HRSLASH es la comprobación del if en cada ciclo. El código es correcto y si tu pregunta era como saltar esos números pues con el if perfecto.

En este caso el testeo del if no importa demasiado porque son 43 iteraciones del for, pero si tuvieras 5 millones de iteraciones sí tendría más importancia.
Puede que desees aprender a programar desde 0: www.espascal.es