代码:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
struct position
{
double x, y, z;
};
double distance(position pos1, position pos2)
{
return sqrt(pow((pos1.x - pos2.x), 2) + pow((pos1.y - pos2.y), 2) + pow((pos1.z - pos2.z), 2));
}
int main()
{
unsigned n;
cin >> n;
double distsum;
position curpos;
cin >> curpos.x >> curpos.y >> curpos.z;
for (unsigned i = 1;i <= n - 1;i++)
{
position pos;
cin >> pos.x >> pos.y >> pos.z;
distsum += distance(curpos, pos);
curpos = pos;
}
cout << fixed << setprecision(3) << distsum << endl;
return 0;
}
Dev-C++ GCC 4.9.2报的错:
In file included from %CppIncludeDir2%\c++\bits\stl_algobase.h:65:0,
from %CppIncludeDir2%\c++\bits\char_traits.h:39,
from %CppIncludeDir2%\c++\ios:40,
from %CppIncludeDir2%\c++\ostream:38,
from %CppIncludeDir2%\c++\iostream:39,
from D:\program\cplusplus\self\P5143.cpp:1:
%CppIncludeDir2%\c++\bits\stl_iterator_base_types.h: In instantiation of 'struct std::iterator_traits<position>':
%CppIncludeDir2%\c++\bits\stl_iterator_base_funcs.h:114:5: required by substitution of 'template<class _InputIterator> typename std::iterator_traits<_Iterator>::difference_type std::distance(_InputIterator, _InputIterator) [with _InputIterator = position]'
D:\program\cplusplus\self\P5143.cpp:28:34: required from here
%CppIncludeDir2%\c++\bits\stl_iterator_base_types.h:165:53: error: no type named 'iterator_category' in 'struct position'
typedef typename _Iterator::iterator_category iterator_category;
^
%CppIncludeDir2%\c++\bits\stl_iterator_base_types.h:166:53: error: no type named 'value_type' in 'struct position'
typedef typename _Iterator::value_type value_type;
^
%CppIncludeDir2%\c++\bits\stl_iterator_base_types.h:167:53: error: no type named 'difference_type' in 'struct position'
typedef typename _Iterator::difference_type difference_type;
^
%CppIncludeDir2%\c++\bits\stl_iterator_base_types.h:168:53: error: no type named 'pointer' in 'struct position'
typedef typename _Iterator::pointer pointer;
^
%CppIncludeDir2%\c++\bits\stl_iterator_base_types.h:169:53: error: no type named 'reference' in 'struct position'
typedef typename _Iterator::reference reference;
求助,这是什么错,求正确代码。