C 中的类型转换结果为零

Type Casting in C resulting in zero

我有一个简单的 C 程序,我将两个整数类型转换为浮点数,然后计算它们的除法。但是,类型转换结果为零。请提供一点帮助将不胜感激。

'''

#include <stdlib.h>
#include <string.h>
#include<ctype.h>

float mean(float sum,float N); 
int main()
{
    int sum = 6;
    int N = 3;
    printf("\nsum: %d\nN: %d",sum,N);
    float m = mean((float)sum,(float)N);
    printf("\nMean: %d",m);
}
return 0;
}

float mean(float sum,float N){
    float m = sum / N;
    return m;
}

这是输出:

%后面的转换码表示要显示的变量类型。 您正在尝试使用 int 转换器来显示 float。

%f float 或 double --> 有符号浮点数 在 printf 函数中使用 %f insted of %d or %i --> Singed decimal integer

#include <stdlib.h>
#include <string.h>
#include<ctype.h>

float mean(float sum,float N); 
int main()
{
    int sum = 6;
    int N = 3;
    printf("\nsum: %d\nN: %d",sum,N);
    float m = mean((float)sum,(float)N);
    printf("\nMean: %f",m);
}
return 0;
}

float mean(float sum,float N){
    float m = sum / N;
    return m;
}

%d 打印以 10 为底的整数, %f 打印浮点值。所以,例如,如果我使用

printf( "%d, %f\n", 9, 9.8 );

输出将是 9, 9.800000。如果你给 printf 5.5 但使用 %d 我认为任何事情都可能发生。