風冷え係数の式をC++で記述しようとしていますが、式と戻り値に問題があります。
これはエラーが発生する関数です。
void eqfunction(int temperature, int windspeed){
int windindex;
windindex = 35.74 + (0.6215 * temperature);
windindex = windindex - (35.75 * windspeed^0.16);
windindex = windindex + ((0.4275 * temperature)*windspeed^0.16);
return windindex;
}
編集:(編集)回答で与えられたアドバイスに従って関数を修正した後、新しいエラーが発生します:
float windChillFactor(float temperature, float windspeed){
float windindex = 35.74f + 0.6215f * temperature;
windindex -= 35.75f * std::pow(windspeed, 0.16f);
windindex += 0.4275f * temperature * std::pow(windspeed, 0.16f);
return windindex;
}
私が間違っていることが2つあることを知っていますが、それらを修正する方法がわかりません。明らかに、その「^」と私の戻り値です。風速の0.16から正方形を作成するにはどうすればよいですか?そして、どうすれば正しいwindindexの戻り値を作成できますか?
これらは私のエラーです
1>c:\users\ryan\desktop\final.cpp\final.cpp\final project.cpp(18):
warning C4244: 'argument' : conversion from 'int' to 'float',
possible loss of data
1>c:\users\ryan\desktop\final.cpp\final.cpp\final project.cpp(18):
warning C4244: 'argument' : conversion from 'int' to 'float',
possible loss of data
1>c:\users\ryan\desktop\final.cpp\final.cpp\final project.cpp(18):
error C2440: '=' : cannot convert from 'void' to 'int'
1> Expressions of type void cannot be converted to other types
1>c:\users\ryan\desktop\final.cpp\final.cpp\final project.cpp(22):
error C2556: 'float eqfunction(float,float)' : overloaded function differs
only by return type from 'void eqfunction(float,float)'
1> c:\users\ryan\desktop\final.cpp\final.cpp\final project.cpp(6) :
see declaration of 'eqfunction'
1>c:\users\ryan\desktop\final.cpp\final.cpp\final project.cpp(22):
error C2371: 'eqfunction' : redefinition; different basic types
1> c:\users\ryan\desktop\final.cpp\final.cpp\final project.cpp(6) :
see declaration of 'eqfunction'