Dudas programación en C

Iniciado por ironserch, 19 Septiembre 2014, 01:56 AM

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

ironserch

Hola amigos, necesito escribir un programa C sin utilizar estructuras de control (sentencia if):

El programa deberá leer un numero entero n (de tres cifras) y muestre en pantalla el valor 1 (CIERTO) en los casos siguientes y 0 (FALSO) en sus contradicciones:


  • Si n es par
  • Si n es capicua
  • Si la segunda y la primera cifra de n son iguales
  • Si las tres cifras tienen el valor 3
  • Si n es múltiplo de 5
  • Si n es positivo
  • Si n esta entre 100 y 888, ambos valores inclusive
  • Si n esta entre 100 y 888, sin incluir estos valores

En un principio el codigo que estoy creando es:


#include <stdio.h>

void main()
{
    int num1, num2, num3;

    /*  num1 = centenas
        num2 = decenas
        num3 = unidades
    */

    int numero;

    printf("\n\nIntroducir el numero de las centenas: ");
    scanf("%d", &num1);
    printf("\n\nIntroducir el numero de las decenas: ");
    scanf("%d", &num2);
    printf("\n\nIntroducir el numero de las unidades: ");
    scanf("%d", &num3);

    printf("\n\nEl numero introducido es: %d", numero=num1*100+num2*10+num3);

    printf("\n\nEs par el numero? (1=SI y 0=NO)");
    printf("\n\n%d", numero%2==0);

    printf("\n\nEs capicua el numero? (1=SI y 0=NO)");
    printf("\n\n%d", num1==num3);

    printf("\n\nLa segunda y la primera cifra son iguales? (1=SI y 0=NO)");
    printf("\n\n%d", num1==num2);

    printf("\n\nLas tres cifras tienen el valor 3? (1=SI y 0=NO)");
    printf("\n\n%d",num1==3 && num2==3 && num3==3);

    printf("\n\nEl numero es multiplo de 5? (1=SI y 0=NO)");
    printf("\n\n%d", numero%5==0);

    printf("\n\nEl numero es positivo? (1=SI y 0=NO)");
    printf("\n\n%d", numero>0);
}



Muchas gracias de ante mano.

rir3760

Salvo la definición de la función main (debería ser "int main(void) ...") y el uso de tantos avances de linea el programa esta bien.

¿Cual es tu duda?

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

ironserch

Mi duda es que tengo que meter un numero de 3 cifras pero a cada cifra le asigno una variable. Mi pregunta seria si se podría hacer con sola una única variable y no con 3 como estoy utilizando.

kaiserr

Si que se puede.
Al usuario le pides que introduzca un numero y lo guardas en una variable. Despues tendras que "tratar" ese numero para sacar las centenas, decenas y unidades.

Por ejemplo tenemos el numero, Num:
centenas --> Num/100
decenas --> (Num%100)/10
unidades --> (Num%100)%10