/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Operadores de División y Resto redondea el resultado Float

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
nideloco



Registrado: 26 May 2010
Mensajes: 3

MensajePublicado: 26/05/2010 10:41 am
Título: Operadores de División y Resto redondea el resultado Float

S.O. W7
Compilador DEVC++

Cita:
#include<stdio.h>
#define DIVISOR 10
#define DIVIDENDO 3
int main()
{
float resultado;
resultado=(DIVISOR/DIVIDENDO);
printf("El resultado es %f \n",resultado);
int resto;
resto=(DIVISOR%DIVIDENDO);
printf("El resto es %i \n",resto);
system("pause");
}



Hola, se me ha metido en la cabeza aprender un poco de programación (más bien tarde) y después de leer por ahí he decidido empezar con el curso de C de Gorka Urrutia.
Llevo tres dias echándole unos ratos y hoy me he quedado atrancado haciendo un ejercicio con los operadores de División y Resto.

Si alguien me pudiera aclarar porque me redondea el resultado se lo agradecería muchísimo.

Saludos a todos.
Volver arriba
Sorancio



Registrado: 29 May 2009
Mensajes: 497
Ubicación: España

MensajePublicado: 26/05/2010 11:47 am
Título:

10 y 3 C los trata como números enteros (y eso es lo que son). C diferencia entre los números enteros y con coma flotante, para diferenciarlos se pone un decimal, de esta manera:

#define DIVISOR 10.0
#define DIVIDENDO 3.0
Volver arriba
nideloco



Registrado: 26 May 2010
Mensajes: 3

MensajePublicado: 26/05/2010 12:15 pm
Título:

Aja, muchas gracias por la aclaración. La parte que corresponde al resto no me la deja compilar porque sólo trabaja con enteros Confused .
He modificado el ejercicio
Cita:
#include<stdio.h>
int main()
{
printf("Dividir 10 entre 3\n\n");
float dv,dd;
dv=10;
dd=3;
printf("El resultado es %f \n",dv/dd);
int v,d;
v=10;
d=3;
printf("El resto es %i \n\n",v%d);
system("pause");
return 0;
}


Muchas gracias por la aclaración, lo tendré en cuenta para otra vez. Saludos.
Volver arriba
digies



Registrado: 18 Nov 2005
Mensajes: 919
Ubicación: Blumenau (Br)

MensajePublicado: 26/05/2010 2:20 pm
Título:

Código:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    float dv, dd;

    printf("Dividir 10 entre 3\n\n");
    dv = 10;
    dd = 3;

    printf("El resultado es %f \n",dv/dd);

    printf("El resto es %i \n\n", (int) dv % (int) dd);

    system("pause");

    return EXIT_SUCCESS;
}

Un saludo
_________________
With enough eyes, all bugs are easy to find.

Eric S. Raymond
Volver arriba
Sorancio



Registrado: 29 May 2009
Mensajes: 497
Ubicación: España

MensajePublicado: 27/05/2010 4:19 am
Título:

Siempre puedes usar la librería math y usar fmod:

Código:

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

int main(void)
{
   const float dv = 10, dd = 3;
   printf("Dividir entre %.2f y %.2f\n", dv, dd);
   printf("Resultado: %f\nResto: %f\n", dv / dd, fmod(dv, dd));
   puts("Presiona INTRO para salir.");
   getchar();
}


Como compilar:

gcc archivo.c -lm
Volver arriba
nideloco



Registrado: 26 May 2010
Mensajes: 3

MensajePublicado: 27/05/2010 9:56 am
Título:

Muchísimas gracias a los dos. Por lo que veo, todavía tengo que aprender a usar muchas librerías Embarassed .

Saludos y gracias de nuevo.
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com