1

Тема: Строку в число! Помилка

Всім привіт! Є така проблема... Вивчаю "довгу" арифметику з ціллю поїздки на олімпіаду... І ось тут пічаль... Не хоче компілюватись код

#include <iostream>
#include <string>
#include <cstring>
#include <vector>
#include <cstdlib>

using namespace std;

int main(){
    char s1[500], s2[500];
    int ln1, ln2, maxln, n;
    char *t;
    
    cin >> s1;
    ln1 = strlen(s1);
    cin >> s2;
    ln2 = strlen(s2);

    if (ln1 > ln2){
        maxln = ln1;
    }
    else {
        maxln = ln2;
    }
    vector<int> one(maxln,0);
    vector<int> two(maxln,0);

    t = &s1[ln1];
    for (int i(0); i<ln1; i++, t--){
        one[i] = atoi(*t);
    }
    t = &s2[ln2];
    for (int i(0); i < ln2; i++, t--){
        two[i] = atoi(*t);
    }
    return 0;
}

Це код для заносу числа в вектор... що не так? Допоможіть. Потрібно якнайшвидше...
Ось текст помилки:

Post's attachments

Снимок.PNG 14.86 kb, 115 downloads since 2015-01-19 

2

Re: Строку в число! Помилка

А ви розберіться, що таке char, а що таке char *.
І мені здається, на олімпіаду не варто з такими знаннями їхати.

Подякували: quez1

3

Re: Строку в число! Помилка

Позамінюйте atoi(*t) на atoi(t)
Повідомлення про помилку неочевидне, так.

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊
Подякували: Rostislav1

4

Re: Строку в число! Помилка

P.Y. написав:

Позамінюйте atoi(*t) на atoi(t)
Повідомлення про помилку неочевидне, так.

Спасибо!

5

Re: Строку в число! Помилка

Навіщо у довгій арифметиці взагалі використовувати вказівники? Робіть чим простіше і так, щоб у ліміт часу/пам'яті вклалися.

РосійськийРесурс

або український (я читав обидва)
Спершу спробуйте не з 9 цифрами, а з одним.

І задачі для підкріплення:
http://www.e-olimp.com/ua/problems/2618
http://www.e-olimp.com/ua/problems/265
http://www.e-olimp.com/ua/problems/266
http://www.e-olimp.com/ua/problems/267
http://www.e-olimp.com/ua/problems/313

Подякували: Rostislav1

6

Re: Строку в число! Помилка

Joker написав:

Навіщо у довгій арифметиці взагалі використовувати вказівники? Робіть чим простіше і так, щоб у ліміт часу/пам'яті вклалися.

РосійськийРесурс

або український (я читав обидва)
Спершу спробуйте не з 9 цифрами, а з одним.

І задачі для підкріплення:
http://www.e-olimp.com/ua/problems/2618
http://www.e-olimp.com/ua/problems/265
http://www.e-olimp.com/ua/problems/266
http://www.e-olimp.com/ua/problems/267
http://www.e-olimp.com/ua/problems/313

Велике ДЯКУЮ!!