Sentencias de seleccion

ernitierniti
07 de Julio del 2009
¡Hola a [email protected]!

Me estoy iniciando el la programacion C++ debido a la carrera. Bien, mi duda es la siguiente, en las sentencias de seleccion (if,if...else,switch) me encuentro con problemas a la hora de realizar determinadas acciones, por ejemplo uno de mis problemas lo encuentro a la hora de realizar este ejercicio: "Realizar un programa que pida un numero entero de cuatro cifras y que lo redondee a la centena más proxima.Ejemplo:
Dame un numero de cuatro cifras:2574
El numero redondeado es: 2600.

Bien, cuando realizo el programa, al compilar no da ningun error, pero el programa no esta bien porque no me lo realizar, sino que se inventa los numeros poniendo una secuencida de ellos sin logica. Si alguien me pudiese ayudar se lo agradeceria muchisimo.

Gracias de antemano.

mapechuca
07 de Julio del 2009
ernitierniti, postea lo que has hecho hasta ahora......, para poder analizarlo

ernitierniti
07 de Julio del 2009
Esto es lo que llevo hecho, a la hora de compilarlo no me da ningun error, pero no es correcto el programa. Gracias

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

main()

{

int a,b,c,d;
printf("Introduce un numero entero de 4 cifra");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if((d<5)&&(c<5))
{
d=0;
c=0;
b=b;
a=a;
printf("El numero es: %d %d %d %d",&a,&b,&c,&d);}
if((d<5)&&(c>=5)&&(b<9))
{
d=0;
c=0;
b=b+1;
a=a;
printf("El numero es: %d %d %d %d",&a,&b,&c,&d);}
if((d>=5)&&(c<5))
{
d=0;
c=0;
b=b;
a=a;
printf("El numero es: %d %d %d %d",&a,&b,&c,&d);}
if((d>=5)&&(c<9))
{
d=0;
c=c+1;
b=b;
a=a;
printf("El numero es: %d %d %d %d",&a,&b,&c,&d);}
if((d>=5)&&(c>=5)&&(b<9))
{
d=0;
c=0;
b=b+1;
a=a;
printf("El numero es: %d %d %d %d",&a,&b,&c,&d);}
if((d>=5)&&(c>=5)&&(b>=9))
{
d=0;
c=0;
b=0;
a=a+1;
printf("El numero es: %d %d %d %d",&a,&b,&c,&d);}


system("PAUSE");

}

Firm
07 de Julio del 2009
Tienes muchos fallos, por ejemplo en el printf("El numero es: %d %d %d %d",&a,&b,&c,&d);} por norma general se quitan los &. Vuelve a leerte lo más básico porque no lo tienes claro.

Para que veas que se puede hacer mucho mas sencillo, te dejo un ejemplo que he hecho yo, pero te recomiendo que lo hagas por tu cuenta:

#include <stdio.h>
#include <stdlib.h>

main()
{


int num1, cifra1, cifra2, cifra3, cifra4;
printf("Introduce un numero entero de 4 cifras: ");


scanf("%d",&num1);



cifra1=num1%10-num1%10;
cifra2=(num1%100)-(num1%100);
cifra3=(num1%1000)-(num1%100)+100;
cifra4=(num1%10000)-(num1%1000);


printf("El numero redondeado es: %d\n",cifra1+cifra2+cifra3+cifra4);


system("PAUSE");
}

Firm
07 de Julio del 2009
Tambien deberias añadirle una condicion para que los numeros introducidos sean de 4 cifras y de error cuando metas un numero de 5 cifras. No lo he hecho todo para que tu trabajes algo...

ernitierniti
07 de Julio del 2009
¡Muchisimas gracias por la ayuda! lo voy a intentar hacer yo por mi cuenta haber q me sale. Más o menos ya lo he entendido, o eso creo, ahora cuando me ponga con ello lo vere.
¡Muchas gracias!