30/09/2018, 16:37

Khai báo một vector kiểu struct

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
struct	point2D
{
	int x;
	int y;
};
float	max(float a, float b)
{
	if (a>b)
		return a;
	else 
		return b;
}
void	inputPoint(vector<point2D> point)
{
	int i;
	int n;
	point2D temp;
	cout << "Hay nhap so diem: ";
	cin >> n;
	point.resize(n);
	for (i=1;i<=(n);i++)
	{
		cout << "Hay nhap diem thu " << i << endl ;
		cin >> temp.x >> temp.y;
		point.push_back(point2D());  //emplace_back()
		point[i-1].x=temp.x;
		point[i-1].y=temp.y;
	}
	cout << "Complete";
}
float	distance(point2D pt1, point2D pt2)
{
	return sqrt(pow(double(pt1.x-pt2.x),2)+pow(double(pt1.y-pt2.y),2));
}
float	findDis(vector<point2D> point)
{
	int size=point.size();
	float maximum=0;
	int i,j;
	for (i=0;i<size;i++)
		for (j=0;j<size;i++)
			maximum=max(maximum,distance(point[i],point[j]));
	return	maximum;
}

int main()
{
	vector<point2D> point;
	int n;
	inputPoint(point);
	cout << "Khoang cach lon nhat la: " << findDis(point);
	getchar();
	getchar();
	return 0;
}

bị báo lỗi nhưng em không biết sửa sao cả :((
làm thử theo bên này mà không được http://stackoverflow.com/questions/8067338/c-vector-of-structs-initialization

... viết 18:46 ngày 30/09/2018
Ideone.com

Ideone.com

Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages.

Không thấy ideone báo lỗi biên dịch, chỉ thấy báo lỗi runtime.

Minh Hoàng viết 18:51 ngày 30/09/2018

Mình chạy bằng visual toàn báo lỗi đến thư viện xutility

Nguyen Hai viết 18:50 ngày 30/09/2018

dùng using namespace std -> đụng độ với hàm std::distance.
đổi tên của hàm float distance(point2D pt1, point2D pt2) là ok.

Gió viết 18:53 ngày 30/09/2018

Có 2 lỗi:

  • vector resize (n) rồi thì không dùng push_back nữa, sẽ tăng kích thước vector
  • for trong findDis:
    for(j=0.... i++ ???)
Minh Hoàng viết 18:44 ngày 30/09/2018

tks mọi người nhé…

Bài liên quan
0