PDA

Ver la versión completa : Ayuda progrma c



flatron
11-12-2007, 14:42
Hola amigos, tengo un problema, tengo k hacer un programa en c pero me ha dicho mi profesor k lo hago de otra forma.


#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{

int opcion;
printf("Redondeos :\n\n\n");
printf("Opcion 1:Introduce un numero real y lo devuelve redondeado a entero.\n");
printf("Opcion 2:Introduce un numero real y lo devuelve redondeado con dos decimales.\n");
printf("Introduce tu eleccion: ");scanf("%d",&opcion);


if (opcion==1)
{
double num;
printf("Introduce un numero real: ");scanf("%lf",&num);
if(num-floor(num)<0.5){
printf("%f es redondeado\n",floor(num));
}
if(num-floor(num)>=0.5){
printf("%f es el numero ya redondeado\n",ceil(num));
}
system("pause");

}else{
if(opcion==2)
{
double num, redondeo;
printf("Introduce un numero real: ");scanf("%lf",&num);
redondeo=ceil(num*100);
if(num-floor(num)<0.5)
printf("El numero redondeado es %.2f\n",num);
if(num-floor(num)>=0.5)
printf("El numero redondeado es %.2f\n",redondeo/100);
system("pause");
}}}


en la 2 opcion tengo k cambiarlo de una forma que no tenga el %.2f.

Help Me.

nicoo
11-12-2007, 17:48
Hola, a simple vista te puedo decir que tu error esta en %.2f, ya que los comandos para precisar el formato que vamos a usar se escriben así:

%[anchura].[precisión] carácter_de_tipo

Donde anchura es el número opcional mínimo de carácteres que tendrá el número a mostrar en pantalla; precisión el número opcional mínimo de decimales tras la coma y caracter_de_tipo el carácter que representa el formato en el cual queremos imprimir el número.

Si pones %3.2f tendrás que el número minimo de carácteres que tendrá el número a mostrar será 3 (El entero y los dos decimales que quieres).

Espero haberte ayudado.

Saludos

Giskard
12-12-2007, 00:58
Se podría hacer de la siguiente forma:


int parteEntera, parteDecimal;
parteEntera=num;
...
parteDecimal=floor((num-parteEntera)*100);//o ceil, según sea el caso
printf("El numero redondeado es %i.%i\n",parteEntera,parteDecimal);

Espero se le entienda bien.

Saludos