C++ 当我从一个函数返回一个double时,它会变成一个整数吗?
在函数C++ 当我从一个函数返回一个double时,它会变成一个整数吗?,c++,C++,在函数distance下,我返回一个名为distan的double。但是当我回到main函数时,dis1[I]变成了一个整数。例如,如果distan=6.06,则调试时dis1[i]将仅为6。代码如下: #include <iostream> #include <cmath> #include<iomanip> using namespace std; /* * */ int distance(double x1,double x2,double y1
distance
下,我返回一个名为distan
的double
。但是当我回到main
函数时,dis1[I]
变成了一个整数。例如,如果distan
=6.06,则调试时dis1[i]
将仅为6。代码如下:
#include <iostream>
#include <cmath>
#include<iomanip>
using namespace std;
/*
*
*/
int distance(double x1,double x2,double y1,double y2){
double k;
k=pow((x1-x2),2)+pow((y1-y2),2);
double distan;
distan=sqrt(k);
return distan;
}
int main() {
int n,k;
double dis=0.00;
cin>>n;
double points[2][100]={0.0};
for(int i=0;i<n;i++){
for(int m=0;m<2;m++){
cin>>points[m][i];}
}
double dis1[100]={0.0};
int count=0;
for(int i=0;i<n-1;i++){
for(int r=1;r<n;r++&&count++)
dis1[count]=distance(points[0][i],points[0][i+r],points[1][i],points[1][i+r]);
}
for(int i=0;i<=count;i++){
if(dis1[i]>dis){
dis=dis1[i];
}
}
cout << fixed << setprecision(4) << dis << endl;
return 0;
}
#包括
#包括
#包括
使用名称空间std;
/*
*
*/
整数距离(双x1,双x2,双y1,双y2){
双k;
k=功率((x1-x2),2)+功率((y1-y2),2);
双区;
distan=sqrt(k);
返回区;
}
int main(){
int n,k;
双dis=0.00;
cin>>n;
双点[2][100]={0.0};
对于(int i=0;i点[m][i];}
}
双dis1[100]={0.0};
整数计数=0;
对于(int i=0;i,distance
函数的返回类型为int
:
int distance(double x1,double x2,double y1,double y2){
^^^
将其更改为double
如果要返回double
请检查返回函数的类型distance
,它是int
,将其更改为double
如下更改函数
double distance(double x1,double x2,double y1,double y2){
double k;
k=pow((x1-x2),2)+pow((y1-y2),2);
double distan;
distan=sqrt(k);
return distan;
}
当您将double值返回给Function时,如果您需要double,则Function返回类型应为double
double距离(double-x1、double-x2、double-y1、double-y2)您只需更新返回类型的函数即可
double distance(double x1,double x2,double y1,double y2){
double k;
k=pow((x1-x2),2)+pow((y1-y2),2);
double distan;
distan=sqrt(k);
return distan;
}
在整数函数“distance”的最后一行,double被强制为整数:
…这就是它变成整数的地方。在执行隐式类型强制时,编译器应该给您一个警告。不这样做的语言更好
return distan;