Загрузка...

Insert sort alphabetically

Thread in C/C++ created by kristall0v Feb 25, 2022. (bumped Feb 25, 2022) 212 views

  1. kristall0v
    kristall0v Topic starter Feb 25, 2022 статус продаётся, честь тоже 31,366 Sep 24, 2019
    Ку. Короче, такая проблема

    Есть код, который сортирует список людей по фамилиям в алфавитном порядке. Список содержит фамилию, имя и отчество.

    Проблема в том, что если у людей одинаковая Фамилия, код не переходит к сравниванию имени и отчества, а как бы это нужно.
    Я так и не придумал, как это реализовать.

    Ввод и вывод - через файл.

    Отблагодарю копеечкой за помощь.

    Мой код:

    C
    #include "fstream"
    #include "string"
    #include "iostream"
    #include "iomanip"

    using namespace std;

    ifstream in("input.txt");
    ofstream out("output.txt");

    struct student{
    string F, I, O;
    void print();
    };

    void student::print(){
    out << F << ' ' << I << ' ' << O << endl;
    }

    void sort(student *a, int n){
    student temp;
    for (int i = 1; i <= n; i++){
    int j = i;
    while (a[j - 1].F.compare(a[j].F)>0){
    temp = a[j];
    a[j] = a[j - 1];
    a[j - 1] = temp;
    j--;
    }
    }
    }

    int main(){
    int n = 0;
    student a[20];
    while (in.peek() != EOF){
    in >> a[n].F >> a[n].I >> a[n].O;
    cout<<a[n].F;
    n++;
    }
    sort(a, n);
    for (int i = 0; i <= n; i++){
    a[i].print();
    }
    in.close();
    out.close();
    return 0;
    }
     
  2. kristall0v
    kristall0v Topic starter Feb 25, 2022 статус продаётся, честь тоже 31,366 Sep 24, 2019
    Разобрался сам, спасибо за помощь.... никому
     
Top
Loading...