Sorting vector by number using bubblesort.

Hello,

I am trying to sort my student list by mark using bubble sort. The program runs but it is not sorting by mark. Thanks.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  #include <iostream>
#include <string>
#include <vector>
using namespace std;

struct records
{
	string name;
	string address;
	int mark;
};

void getName();
void displayName();
void sort(vector<records> record);
vector<records> record;

int main(){
	getName();
	sort(record);
	displayName();
	
	return 0;
}

void getName()
{
	records student;
	while(true)
	{
	
	cout << "name: ";
	getline(cin,student.name);
	if(student.name=="quit")
	break;
	cout << "address: ";
	getline(cin,student.address);
	cout << "mark: ";
	cin >> student.mark;
	cin.ignore(1);
	record.push_back(student);
}
}

void displayName()
{
	for (int i=0; i < record.size();i++)
	{
		cout << record[i].name << endl;
		cout << record[i].address << endl;
		cout << record[i].mark << endl;
	}
}

void sort(vector<records> record)
{
for (int i=1; i<=record.size();i++)
{
	for (int j=0; j<record.size();j++)
	{
		if (record[j].mark>record[j+1].mark)
		{
			swap(record[j].mark,record[j+1].mark);
		}
	}
}
	
}
void sort(vector<records> record)
This will pass the argument by value, meaning that the original won't be modified.

To modify the original, pass by reference.
Topic archived. No new replies allowed.