Считать целое десятичное число getchar-ом - C (СИ)
Формулировка задачи:
сразу оговорюсь я знаю про интерисует как получить из нескольких введеных цифр число являющееся этими цифрами
1, 2, 5, 0 => 1250
общая концепция даже без кода, а просто вектор мысли
могу их записывать в массив или создавать каждый раз переменную мне пофиг, но как потом это дело объеденить воедино вопрос.
scanf("%d", &count);
while ((c=getchar()) != EOF) if (с <= '9' && c >= '0')
Решение задачи: «Считать целое десятичное число getchar-ом»
textual
Листинг программы
#include <stdio.h> #define MAX 10 int main() { int s,i,j,rezult,pow; int tmp [MAX]; for (i = 0; i < MAX; i++){ tmp[i] = 0; } while ((s = getchar()) != '\n'){ if (s >= '0' && s <= '9'){ tmp[j++] = s - '0'; } } for (j--,pow = 1; j>=0; j--){ if (tmp[j]){ rezult+=(tmp[j]*pow); pow *=10; } } }
Объяснение кода листинга программы
- Включаем файл стандартного ввода/вывода
- Определяем максимальное количество десятичных разрядов числа равным 10
- В функции main() инициализируем переменные типа int: s, i, j, rezult, pow равными 0
- Создаем массив типа int tmp[MAX] и заполняем его нулями
- Запускаем цикл while, который будет выполняться до тех пор, пока getchar() не вернет символ новой строки '\n'
- Внутри цикла проверяем, является ли введенный символ числом от 0 до 9 с помощью операции сравнения s >= '0' && s <= '9'
- Если это так, то добавляем значение этого числа в массив tmp[j++]
- После выхода из цикла while, начинаем цикл for, который будет выполнять обратное перебирание массива tmp
- Внутри цикла проверяем, если значение элемента массива tmp[j] не равно 0
- Если это так, то умножаем его на значение переменной pow и добавляем к переменной rezult
- Затем увеличиваем значение переменной pow на 10
- После выхода из цикла for, выводим значение переменной rezult с помощью функции printf()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д