【发布时间】:2022-01-18 22:53:04
【问题描述】:
如何将最后四个值从入口传递到函数距离作为参数? 例如,如果我输入值
2 6
1 2
4 8
我希望编译器获取最后四个值 1,2,4 和 8 并打印 (1,2) (4,8) =6.7 如何从缓冲区中提取它们?
谢谢
#include <iostream>
#include <cmath>
#include <string>
struct point{
int x1,x2;
int y1,y2;
};
double distance(int x1,int y1,int x2,int y2){
double d=sqrt(pow((x1-x2),2)+pow((y1-y2),2));
return (int)(d*10.0)/10.0;
}
int main(){
point a;
while(std::cin>>a.x1>>a.y1>>a.x2>>a.y2){
std::cout<<"Distance: "<< distance(a.x1,a.y1,a.x2,a.y2);
}
return 0;
}
【问题讨论】:
-
您的意思是要丢弃除最后 4 个整数以外的所有输入,还是要跳过 2 并阅读第三个到第六个?无论哪种方式,只需编写一个循环来丢弃所需的数据。第一种情况稍微困难一些;你需要存储一些元素。
-
仅供参考,更喜欢乘法,
x * x,而不是pow(x,2)。pow函数用于浮点,在从整数转换为整数时可能会引入错误。此外,x * x通常由几条指令执行。pow函数需要设置指令、调用指令、内容指令和返回指令。通常不仅仅是乘法。 -
另外,在大多数几何和编程术语中,点通常是
<x1, y1>(对于二维笛卡尔系统)。Line包含 2 个点;所以你应该将你的结构命名为Line,而不是point。