2014-12-24 5 views
0

Я знаю, что это может быть глупый вопрос, но можете ли вы сказать мне, почему следующий код кода не работает? Я не вижу ничего плохого. Я пытаюсь читать целые числа с помощью scanf. Я включил необходимую библиотеку, но когда я запускаю программу, она падает после того, как я прочитал первые s. Спасибо.Проблемы при чтении целых чисел с scanf

#include <iostream> 
#include <ctime> 
#include <cstdlib> 
#include <cmath> 
#include <cstdio> 
#include <vector> 

using namespace std; 

int main() 
{ 
    int n, x; 

    scanf("%d", &n); scanf("%d", &x); 

    vector< pair<int, int> > moments; 

    for(int i = 0; i < n; ++i) 
    { 
     int f, s; 
     scanf("%d", &f); 
     scanf("%d", &s); 

     moments[i].first = f; 
     moments[i].second = s; 

    } 


    return 0; 
} 

ответ

0

Это не способ присвоить значения моментам, так как моменты [i] еще не существуют. Попробуйте:

pair<int, int> thing; 
    thing = make_pair(f,s); 
    moments.push_back(thing); 

вместо ваших назначений моментов элементов.

Смежные вопросы