Помощ със една изпитна задача на C++

+1 глас
736 прегледа
попитан 2018 март 4 от Lathezar (130 точки)

Подготвям се за изпит по информатика и в момента пререшавам изпитните им задачи на една ми дава малко затруднения.

http://fmi-plovdiv.org/GetResource?id=160

Това е изпитната задача

В момента съм стигнал до тук:

//zad_izpit.cpp

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int FN[1000];
    int n;
    
    std::string AA,BB,CC,D,EEE;
    
    cout<<"Broj na uchenici:";
    cin>>n;
    
    for(int i=0;i<n;i++)
    {
        cout<<" Poseldnite 2 chisla ot godinata na rajdane: ";
        cin>>AA;
        cout<<"Nomer na Fakulteta: ";
        cin>>BB;
        cout<<"Nomer na Specialnost: ";
        cin>>CC;
        cout<<"Vid na obuchenie(zadochno -1 | redovno - 2): ";
        cin>>D;
        cout<<"EGN (posledni 3 nomera): ";
        cin>>EEE;
        
        int convAA = std::stoi(AA);
        int convBB = std::stoi(BB);
        int convCC = std::stoi(CC);
        int convD = std::stoi(D);
        int convEEE = std::stoi(EEE);
        
        FN[i] = convAA*100000000 + convBB*1000000 + convCC*10000 + convD*1000 + convEEE;
        
    }
    
    for(int i=0; i<n; i++)
    {
        
        if(FN[i]/100000000>=00 or FN[i]/100000000=99 or FN[i]/100000000<=09)
        {
        
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<n;j++)
                {  
                    if(FN[j]/1000000>FN[j+1]/1000000)
                    {
                        int tmp = FN[j];
                        FN[j] = FN[j+1];
                        FN[j+1] = tmp;
                    }
                    if(FN[j]/1000000==FN[j+1]/1000000)
                    {
                        int temp = FN[j];
                        FN[j] = FN[j+1];
                        FN[j+1] = temp;
                    }
                }
            } 
            cout<<FN[i];
        }
    
    }
    return 0;
}

Основното е че не иска да компилира заради std::stoi, не съм сигурен каква е грешката на stoi, тъй като по други форуми и учебници чета че така трябва да е.

За компилатор използвам CodeBlocks.

Ако някой от вас може да открие грешки ще съм му много благодарен 

1 отговор

0 гласа
отговорени 2018 март 6 от ilinovster (1,870 точки)
Не ти е необходимо std::stoi. Факултетният номер и ЕГН са символни низове, а не цели числа. Въвеждаш ги като стрингове и 2 функции за проверка на валидността им.
...