C语言中的冲突类型与转换

C语言中的冲突类型与转换,c,types,casting,C,Types,Casting,对于您来说,这可能是一个简单的问题,我只是在使用getAverage函数时遇到了一些问题,它返回一个浮点变量类型。我在函数所在的第114行不断收到“冲突类型”错误消息。我不确定我的语法是否对我的方法有错误,或者发生了什么。任何帮助都将不胜感激 以下是我的功能: float getAverage(int nume, int deno) { float average; average = (float)(nume/deno); return average; } 编辑:我

对于您来说,这可能是一个简单的问题,我只是在使用getAverage函数时遇到了一些问题,它返回一个浮点变量类型。我在函数所在的第114行不断收到“冲突类型”错误消息。我不确定我的语法是否对我的方法有错误,或者发生了什么。任何帮助都将不胜感激

以下是我的功能:

float getAverage(int nume, int deno)
{
    float average;
    average = (float)(nume/deno);
    return average;
}

编辑:我的函数在我的主函数下面。

如果在声明函数之前调用函数,编译器将假定它返回一个
int
。当你的函数返回一个
float
时,你会得到一个
冲突的类型
错误。

你可能想要((float)nume/deno)来实际执行类型转换,即使尝试了,我仍然会得到一个冲突的类型错误。“我仍在学习C,所以我确信一旦我弄明白了,我将不得不打自己一巴掌。”失败者同意。甚至可以使用
average=(float)((double)nume)/deno
以获得更高精度的大
int
值。您需要移动浮点转换以避免进行整数除法。啊,谢谢您修复了我的问题,我不知道编译器假定int,除非您预先声明函数。非常感谢。