I';我还是C新手,我不知道为什么我的浮点结果是随机的(可能是类型提升规则?)

I';我还是C新手,我不知道为什么我的浮点结果是随机的(可能是类型提升规则?),c,floating-point,type-conversion,type-promotion,C,Floating Point,Type Conversion,Type Promotion,我相信这与类型提升规则有关,但我不确定,而且考虑到我还是编程新手,我无法想象为什么会这样: #include <stdio.h> int main() { float result; result = function(2.4, 4.9); printf("Test: %.2f\n", result); system("PAUSE"); return 0; } float function(float value1, float val

我相信这与类型提升规则有关,但我不确定,而且考虑到我还是编程新手,我无法想象为什么会这样:

#include <stdio.h>

int main() {

    float result;
    result = function(2.4, 4.9);

    printf("Test: %.2f\n", result);
    system("PAUSE");
    return 0;
}

float function(float value1, float value2) {
    float calculation = value1 * value2;
    return calculation;
}
#包括
int main(){
浮动结果;
结果=功能(2.4,4.9);
printf(“测试:%.2f\n”,结果);
系统(“暂停”);
返回0;
}
浮动功能(浮动值1、浮动值2){
浮动计算=值1*2;
收益计算;
}
会打印出来吗

测试:-858993472.00


我正在输入浮点值,我希望我的计算返回另一个浮点值作为结果,我做错了什么

在调用函数之前声明它。在这里,您需要将定义放在
main()
上方,或者只在
main
之前放一个声明

#include <stdio.h>

float function(float value1, float value2) {
    float calculation = value1 * value2;
    return calculation;
}
int main() {

    float result;
    result = function(2.4, 4.9);

    printf("Test: %.2f\n", result);

    return 0;
}
#包括
浮动功能(浮动值1、浮动值2){
浮动计算=值1*2;
收益计算;
}
int main(){
浮动结果;
结果=功能(2.4,4.9);
printf(“测试:%.2f\n”,结果);
返回0;
}

#包括
浮动功能(浮动值1、浮动值2);
int main(){
浮动结果;
结果=功能(2.4,4.9);
printf(“测试:%.2f\n”,结果);
返回0;
}
浮动功能(浮动值1、浮动值2){
浮动计算=值1*2;
收益计算;
}
此外,如果您已打开警告,则可能会看到如下消息


。:“函数”未在此作用域中声明

在调用函数之前声明该函数。在这里,您需要将定义放在
main()
上方,或者只在
main
之前放一个声明

#include <stdio.h>

float function(float value1, float value2) {
    float calculation = value1 * value2;
    return calculation;
}
int main() {

    float result;
    result = function(2.4, 4.9);

    printf("Test: %.2f\n", result);

    return 0;
}
#包括
浮动功能(浮动值1、浮动值2){
浮动计算=值1*2;
收益计算;
}
int main(){
浮动结果;
结果=功能(2.4,4.9);
printf(“测试:%.2f\n”,结果);
返回0;
}

#包括
浮动功能(浮动值1、浮动值2);
int main(){
浮动结果;
结果=功能(2.4,4.9);
printf(“测试:%.2f\n”,结果);
返回0;
}
浮动功能(浮动值1、浮动值2){
浮动计算=值1*2;
收益计算;
}
此外,如果您已打开警告,则可能会看到如下消息



。:“函数”未在此范围内声明

您需要上面的函数原型
main
。请用警告进行编译。查阅“转发声明”。如果您对语言(特别是C语言或C++)很陌生,它是一个非常重要的概念。您使用的编译器要么使用过时的28年C标准修订,18年前被取消和替换,要么您没有阅读编译器警告(应该考虑错误,并努力地复制到您的问题中)。这其实是我本可以做的,很抱歉,我在学习C的第一周就完全忘记了这么重要的一条规则。首先从谷歌和诊断信息开始!您需要上面的函数原型
main
。请用警告进行编译。查阅“转发声明”。如果您对语言(特别是C语言或C++)很陌生,它是一个非常重要的概念。您使用的编译器要么使用过时的28年C标准修订,18年前被取消和替换,要么您没有阅读编译器警告(应该考虑错误,并努力地复制到您的问题中)。这其实是我本可以做的,很抱歉,我在学习C的第一周就完全忘记了这么重要的一条规则。首先从谷歌和诊断信息开始!这应该包括一个解释(“隐式int”)@FelixPalmen.:噢,Oknavermind,被骗者有它;)耶稣啊,这是一个新手犯的错误,谢谢。@FelixPalmen.:太快了……这应该包括一个解释(“隐式int”)@FelixPalmen.:噢,Oknavermind,被骗者有它;)耶稣啊,这是一个多么新的错误,谢谢你。@FelixPalmen:太快了。。。