当我从函数返回一个双精度值时,它变成了一个整数
When I return a double from a function it becomes a integer?
在函数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;
}
另外,这个代码是计算两组点(x和y)之间的最大距离,请帮助。
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;
}
当你向function返回双精度值时,如果你需要双精度值,则函数返回类型应为double。
double distance(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"的最后一行将双精度类型强制转换为整型:
return distan;
…这就是它变成整数的地方。当执行隐式类型强制转换时,编译器应该给您一个警告。更好的是不需要这样做的语言
相关文章:
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 当我们从/tp地址中添加/减去一个整数时会发生什么
- 如何将一个数组值合并为一个整数c++
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 我可以将迭代器递增一个整数吗?
- 有没有办法生成一个包含平方的序列,这些平方加起来就是一个整数平方?
- 为什么将两个浮点数相加会得到一个整数C++?
- 如果我们在其中输入一个整数,则字符会给出整数作为输出,但是当分配给它一个整数时,这不会发生。为什么?
- 给枚举一个整数,并在 C++ 中将其相关值作为字符串获取
- 按升序输出整数时,将最后一个整数放在新行上
- 编写一个程序,提示用户输入一个整数,然后输出数字的单个数字和数字的总和
- 给定一个整数 N>0,区间 [0, 2^N) 中有多少个整数正好有 N-1 个设置位?编写一个返回正确答案的简短函数
- 给定一个整数,将其表示为平方和
- c++interpret_cast是一个整数
- 以最少的步骤将给定整数转换为另一个整数
- 当 map 是一个整数数组并且由 operator[] 创建时,它是否初始化其映射类型
- 我需要将字符串(例如 A5)转换为一个字符串 (A) 和一个整数 (5)
- 如何交替从文件中获取一行数据和一个整数?
- 如何让这个C++代码从用户那里读取五个整数而不是一个整数?