Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main(void)
- {
- int num = 0; // инициализируем переменную num
- int dec = 1; // инициализируем вспомогательную переменную dec
- char str[1000] = ""; //инициализируем строку str
- scanf("%s", str); // считываем число пользователя
- for(int i = strlen(str) - 1; i >= 0; i--) { // выполянем проверку на корректность данных
- if(str[i] < 48 || str[i] > 57) {
- printf("Wrong data!");
- return 0;
- }
- else {
- num += (str[i] - 48) * dec;
- dec *= 10;
- }
- }
- printf (" Input num: %d\n ", num); // печатаем на экран введенное число
- printf ("Num without even numbers: "); // выводим сообщение, что дальше будет выведено число без четных цифр
- int new_num = 0; /* новое, перевернутое число */
- short digit = 0; /* цифра какого-то разряда введенного числа */
- while (num / 10 != 0 || num % 10 != 0) { /* пока есть цифры в числе */
- digit = num % 10; /* достаем следующую цифру из введеного числа (с права на лево) */
- if (digit % 2 != 0) { /* если цифра нечетная, то добавляем его к итоговому числу */
- new_num = new_num * 10 + digit; /* само добавление */
- }
- num /= 10; /* берем следующую цифру */
- }
- /* переворачиваем число */
- int final = 0; /* перевернутое число - ответ */
- while (new_num / 10 != 0 || new_num % 10 != 0) { /* пока есть цифры в числе */
- final = final * 10 + new_num % 10; /* записываем цифры в новое число так, что бы в результате final был перевернутой версией числа new_num */
- new_num /= 10; /* переходим к следующей цифре */
- }
- printf("%d\n", final);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement