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.