El resultado de la división es siempre cero [duplicado]

Resuelto VaioIsBorn asked hace 14 años • 4 respuestas

Tengo este código C.

#include <stdio.h>

int main(void)
{
        int n, d, i;
        double t=0, k;
        scanf("%d %d", &n, &d);
        t = (1/100) * d;
        k = n / 3;
        printf("%.2lf\t%.2lf\n", t, k);
        return 0;
}

Quiero saber por qué mi variable 't' es siempre cero (en la función printf).

VaioIsBorn avatar Feb 27 '10 08:02 VaioIsBorn
Aceptado

porque en esta expresión

t = (1/100) * d;

1 y 100 son valores enteros, la división de enteros se trunca, por lo que esto es lo mismo que esto

t = (0) * d;

necesitas hacer que sea un flotador constante como este

t = (1.0/100.0) * d;

es posible que también quieras hacer lo mismo con esto

k = n / 3.0;
John Knoeller avatar Feb 27 '2010 01:02 John Knoeller