30/09/2018, 20:37

Sửa lỗi đoạn code sai khi gọi hàm

Đoạn code của e khai báo mảng A cấp phát động, nhưng khi gọi hàm e đưa mảng A vào thì báo lỗi:

Error 1 error C2664: ‘void InterchangeSort(int [],int)’ : cannot convert argument 1 from ‘Data1 *’ to ‘int []’

Error 2 IntelliSense: argument of type “Data1 *” is incompatible with parameter of type “int *”

Giúp e sửa lỗi với ạ?

#include <iostream>
using namespace std;

class Data1{
private:
	int x;
	static int assignment_count;
	static int n;
public:

	friend ostream& operator<<(ostream &os, const Data1& a);
	friend istream& operator>>(istream &os, Data1& a);
	static void set_n(int n){
		if (Data1::n == 0) Data1::n = n;
		else cout << "WRONG";
	}
	Data1& operator=(const Data1& a){
		assignment_count++;
		if (assignment_count > 3 * Data1::n){
			cout << "WRONG";
		}
		this->x = a.x;
		return *this;
	}

	bool operator<(const Data1& a){
		return this->x < a.x;
	}
};
int Data1::assignment_count = 0;
int Data1::n = 0;

ostream& operator<<(ostream &os, const Data1& a){
	return os << a.x;
}
istream& operator>>(istream &os, Data1& a){
	return os >> a.x;
}


void InterchangeSort(int A[], int n)
{
	for (int i = 0; i < n - 1; i++)
		for (int j = i + 1; j < n; j++)
			if (A[i]>A[j])
				swap(A[i], A[j]);

}


int main(){
	int n;
	cin >> n;
	Data1::set_n(n);

	Data1 *A = new Data1[n];
	for (int i = 0; i < n; i++){
		int x;
		cin >> A[i];
	}

	InterchangeSort(A, n);

	for (int i = 0; i < n; i++){
		cout << A[i] << " ";
	}
}
Quân viết 22:40 ngày 30/09/2018

khai báo hàm nhận đầu vào kiểu int[] pass dữ liệu Data[]

Minh Tú viết 22:42 ngày 30/09/2018

Gõ Data nó k nhận, báo lỗi rùm ben hơn nữa a

Bài liên quan
0