01/10/2018, 16:06

Cấu trúc struct c++

chào anh chị em mới học c++ anh chị cho em hỏi làm thế nào mà mình có thể chọn sinh viên ra và sau khi chọn nếu tên sinh viên bị trùng thì yêu cầu người sử dụng nhập mã số sinh viên vậy ạ?

void Search(struct Student &s, struct Student a[])
{
	int flag = 0;
	char k[50];
	char e[50];
	int i, j;
	Student found;

	cout << "Input the name you want to get: ";
	fflush(stdin);
	cin.get(k, 256);
	for (i = 0; i < n; i++)
	{
		if (strlen(k) == strlen(a[i].Name))
		{
			cout << "student is found at " << i + 1 << " " << "Student id: " << a[i].id << " " << "Grade: " << a[i].grade << endl;
			cout << "==================================" << endl;
		}

	}

	for (i = 0; i < n;i++)
	{
		for (j = i; j < n; j++)
		{
			while (a[i].Name == a[j].Name)
			{
				fflush(stdin);
				cout << "Please Enter Id: ";
				cin >> e;
				if (strcmp(e, a[i].id) == 0)
				{
					cout << "student is found at " << i + 1 << " " << "Student name: " << a[i].Name << " " << "Grade: " << a[i].grade << endl;
					
				}
				break;
			}
		}
		break;
		}
		
}
rogp10 viết 18:09 ngày 01/10/2018

Ngay từ đầu bạn đã sai chỗ so tên rồi.

Mình làm thì khi tìm họ tên thì sẽ hiện hết những mã cùng họ tên và yêu cầu người dùng chọn.

Thanh Le viết 18:16 ngày 01/10/2018

bạn có thể giải thích rõ hơn dược không ạ?

Pham Van Hai viết 18:08 ngày 01/10/2018

C++ không cho phép so sánh chuỗi dùng toán tử ==. Phải dùng các hàm trong thư viện,hay tự viết hàm (ví dụ hàm strcmp), bạn tìm hiểu thêm trên google nhé.

rogp10 viết 18:13 ngày 01/10/2018

Đó là string của C. std::string thì so == được nhưng phải khớp case mới bằng nhau, và strcmp cũng phải khớp case.

Bài liên quan
0