Программисты, снова нужна ваша помощь.

dota_in_my_heart

Король флуда
Дней с нами
3.254
Розыгрыши
0
Сообщения
634
Репутация
45
Реакции
588
Короче, тема такая. Мне нужна программа, чтобы определить последнюю цифру в девятизначном числе. Например, если мы вводим 123456789, то программа должна вывести 9. Я делал через остаток от деления числа на 10. До восьмизначного числа это работает, а при девятизначном на 123456789 выдаёт почему-то 2. Если ввести 123456719, то выдаст 0. Я не понимаю, что происходит. Хелпуйте. Если додумаетесь до альтернативного варианта нахождения последней цифры числа, кину +реп.
@F1N
 

flnn_human

Любитель трепать не по делу
Дней с нами
3.159
Розыгрыши
1
Сообщения
3.246
Репутация
247
Реакции
2.806
определяешь длину числа
потом удаляешь (кол-во символов -1) символов с начала
 

flnn_human

Любитель трепать не по делу
Дней с нами
3.159
Розыгрыши
1
Сообщения
3.246
Репутация
247
Реакции
2.806
  • Like
Реакции: dota_in_my_heart

BlackCat

Шпион РосКОТнадзора
Активный
Дней с нами
3.191
Розыгрыши
19
Сообщения
32.517
Репутация
1.853
Реакции
39.991
Вообще,ты самый годный алгоритм описал...(любой другой будет тупым мозгоебством и тратой ресурсов)
P.S:Нихуя не программист...помню только Паскаль со школьного курса,да и то хуевенько...
 
  • Like
Реакции: dota_in_my_heart

dota_in_my_heart

Король флуда
Дней с нами
3.254
Розыгрыши
0
Сообщения
634
Репутация
45
Реакции
588

dota_in_my_heart

Король флуда
Дней с нами
3.254
Розыгрыши
0
Сообщения
634
Репутация
45
Реакции
588
Вообще,ты самый годный алгоритм описал...(любой другой будет тупым мозгоебством и тратой ресурсов)
P.S:Нихуя не программист...помню только Паскаль со школьного курса,да и то хуевенько...
да я понимаю, что это то, что нужно, просто непонятно почему он в девятизначном не определяет.
 

eldaruwe

Активный участник
Дней с нами
2.691
Розыгрыши
0
Сообщения
74
Репутация
0
Реакции
48
В бейсике не шарю, из типичных ошибок может быть только то, что ты выводишь не последнюю цифру, а символ с кодом последней цифры
 
  • Like
Реакции: dota_in_my_heart

dota_in_my_heart

Король флуда
Дней с нами
3.254
Розыгрыши
0
Сообщения
634
Репутация
45
Реакции
588
В бейсике не шарю, из типичных ошибок может быть только то, что ты выводишь не последнюю цифру, а символ с кодом последней цифры
неа, вывожу именно цифру.
 

Bez_MozgOFF

Zhalko chto ne admin
Дней с нами
3.783
Розыгрыши
0
Сообщения
216
Репутация
57
Реакции
150
Ты все правильно сделал, просто дело в том, что (скорее всего) ты юзал integer у которого диапазон ограничен. Проверь может я прав)
В с++ на Visual Studio например int в диапазоне от -2 147 483 648 до 2 147 483 647.
Код:
#include<iostream>
using namespace std;

void main() {
    int a;
    cin >> a;
    if (a % 10 == 9)
        cout << '9' << endl;
    else cout << "Wrong input" << endl;
    system("pause>void");
}
 
  • Like
Реакции: dota_in_my_heart и faseri

Lysenar

[SIZE=7]️[/SIZE]
Дней с нами
2.932
Розыгрыши
0
Сообщения
1.527
Репутация
393
Реакции
5.522
я не программист, но разве нет такого понятия "адрес памяти" "обращение к памяти"? Или такое в басик не завезли ибо он настолько высокоуровневый что перегнал html.
 

BlackCat

Шпион РосКОТнадзора
Активный
Дней с нами
3.191
Розыгрыши
19
Сообщения
32.517
Репутация
1.853
Реакции
39.991
да я понимаю, что это то, что нужно, просто непонятно почему он в девятизначном не определяет.
Ты все правильно сделал, просто дело в том, что (скорее всего) ты юзал integer у которого диапазон ограничен. Проверь может я прав)
В с++ на Visual Studio например int в диапазоне от -2 147 483 648 до 2 147 483 647.
Код:
#include<iostream>
using namespace std;

void main() {
    int a;
    cin >> a;
    if (a % 10 == 9)
        cout << '9' << endl;
    else cout << "Wrong input" << endl;
    system("pause>void");
}
Чувак дело описал(в Паскале в таких случаях используется longint или int64 вроде...)
 
  • Like
Реакции: dota_in_my_heart

Justman

Даэдрот такой
Дней с нами
3.307
Розыгрыши
0
Сообщения
1.851
Репутация
214
Реакции
2.439
  • Like
Реакции: dota_in_my_heart

eldaruwe

Активный участник
Дней с нами
2.691
Розыгрыши
0
Сообщения
74
Репутация
0
Реакции
48
  • Like
Реакции: dota_in_my_heart

Aлександр

Сашка
Дней с нами
3.765
Розыгрыши
0
Сообщения
1.078
Репутация
445
Реакции
2.378
  • Like
Реакции: dota_in_my_heart

Justman

Даэдрот такой
Дней с нами
3.307
Розыгрыши
0
Сообщения
1.851
Репутация
214
Реакции
2.439
Видел фичу с использованием рекурсивной функции, что-то такое(C++) :

Код:
char input(char last) {
char a = '\0';
cin >> a;
if (char == '\0') {
return last;
} else {
return input(a);
}

int main() {
char a;
cin >> a;
cout << input(a);
}

Идея короче ясна :6:

Получаем первый символ, потом вызывается input(a)
Кажый input читает текущий символ, но при этом помнит предыдущий. Если текущий оказался концом строки - возращает предыдущий, иначе - вызывает input
 
  • Like
Реакции: dota_in_my_heart