PDA

Просмотр полной версии : [Вопрос] Последняя цифра в числе - как определить?



KakbeYura
08.06.2014, 16:27
У меня есть, допустим:

new num = 10000+random(9999);
И у меня вышло 16453, как определить эту 3?

Пример, который пришёл мне в голову:

new numstr[10];
valstr(numstr, num);
new last = strval(strlen(numstr)-1));
Другие предложения есть?

DeimoS
08.06.2014, 16:52
new numstr[10];
valstr(numstr, num);
new last = strval(strlen(numstr)-1));
О_о попробуйте использовать этот код...

Вашим числом будет остаток от деления на 10. То бишь


new num = 10000+random(9999);
printf("Число - %d\nПоследняя цифра - %d\nDeimoS умница :3\n", num, num % 10);

KakbeYura
08.06.2014, 17:01
О_о попробуйте использовать этот код...

Вашим числом будет остаток от деления на 10. То бишь


new num = 10000+random(9999);
printf("Число - %d\nПоследняя цифра - %d\nDeimoS умница :3\n", num, num % 10);

Благодарен.
Тему можно закрыть.

DeimoS
08.06.2014, 17:08
Благодарен.
Тему можно закрыть.

И на будущее. Если понадобится 2, 3 или 10 последних цифр, достаточно разделить на "100", "1000" и "10000000000" соответственно. То бишь столько нулей, сколько цифр нам нужно в итоге получить.
И помните - математика не прощает. :new_russian:

KakbeYura
09.06.2014, 15:37
И на будущее. Если понадобится 2, 3 или 10 последних цифр, достаточно разделить на "100", "1000" и "10000000000" соответственно. То бишь столько нулей, сколько цифр нам нужно в итоге получить.
И помните - математика не прощает. :new_russian:

Pawn не позволяет оператор %..



C:\Documents and Settings\User\Мои документы\Dropbox\KakbeMode\gamemodes\justdrift.pwn(10298) : error 040: duplicate "case" label (value 117)
C:\Documents and Settings\User\Мои документы\Dropbox\KakbeMode\gamemodes\justdrift.pwn(14269) : error 004: function "operator%(Float:,_:)" is not implemented
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.

А вот что я нашёл в инклуде "float.inc"


/* forbidden operations */
forward operator%(Float:oper1, Float:oper2);
forward operator%(Float:oper1, oper2);
forward operator%(oper1, Float:oper2);

Насколько я знаю, "forbidden operations" переводится как "запрещённые операции"..

OKStyle
09.06.2014, 15:54
Ну у тебя целые числа ведь, они разрешены.

KakbeYura
09.06.2014, 15:59
Не совсем, одна переменная - Float

- - - Добавлено - - -

В примере выше - целые, а вот в моде одна переменная Float. Буду юзать floatround

OKStyle
09.06.2014, 18:51
Иногда так делать критично. Напиши для какой задачи используешь, может, подберём другой путь.

DeimoS
09.06.2014, 23:43
Если всё совсем плохо будет, можно попробовать число конвертировать в строку (valstr) и далее вывести последний символ