| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
nideloco
Registrado: 26 May 2010 Mensajes: 3
| Publicado: 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
| Publicado: 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
| Publicado: 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 . 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)
| Publicado: 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
| Publicado: 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
| Publicado: 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 .
Saludos y gracias de nuevo. |
|
| Volver arriba | |
 |
|
|