#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int solve(int t){
float ans = static_cast<float>(320)/100;
cout<<fixed<<setprecision(2)<<ans;
}
int main(){
int t=320;
cout<<solve(t);
return 0;
}
输出:3.204745728
如何得到3.20
的输出当您只想输出一个东西时,您使用了两次cout
。当您没有从solve
返回任何值时,您也输出了solve
的返回值,这解释了您看到的额外数字。
要么在solve
中做cout
,要么在main
中做,不要在两个地方都做。
第一种方法
#include <iostream>
using namespace std;
void solve(int t){
float ans = static_cast<float>(320)/100;
cout<<fixed<<setprecision(2)<<ans; // print the answer
}
int main(){
int t=320;
solve(t);
return 0;
}
第二种方式
#include <iostream>
using namespace std;
float solve(int t){
float ans = static_cast<float>(320)/100;
return ans; // return the answer
}
int main(){
int t=320;
cout<<fixed<<setprecision(2)<<solve(t);
return 0;
}
代码的另一个问题是,您将参数320
传递给solve
,但您没有在那里使用它。你可能想改变
float ans = static_cast<float>(t)/100;
从函数中返回值和在函数中打印值对于初学者来说很容易混淆,但这是完全不同的事情。上面的第一个代码输出函数中的值,上面的第二个代码返回函数中的值(并在main
中打印)。