Считать целое десятичное число 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()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д