Допустить ввод в массив только чисел - C (СИ)
Формулировка задачи:
Решение задачи: «Допустить ввод в массив только чисел»
#include <stdio.h> #include <string.h> #include <stdbool.h> void GetFloat(); int main(){ printf("Float value: "); GetFloat(); return 0; } void GetFloat(){ char sym; int array[255] = {0}; int after[255] = {0}; int index=0; int index_after=0; bool flag = false; while((sym = getchar())!='\n'){ if(sym > 0x29 && sym < 0x40){ if (flag) { after[index_after++] = sym-0x30; } else { array[index++] = sym-0x30; } } if('.' == sym ){ flag = true; } } int some; printf("Value in array: "); for(some=0; some<index-1; some++){ printf("%d", array[some]); } printf("\nValue in after point: "); for(some=0; some<index_after; some++){ printf("%d", after[some]); } }
Объяснение кода листинга программы
В этом коде определенная последовательность символов вводится в массив, и этот процесс продолжается до тех пор, пока не будет введен символ новой строки. Код определяет два массива: массив array
для хранения введенных чисел и массив after
для хранения десятичных чисел.
В начале каждого числа в массиве array
добавляется символ, который был введен. Если введено десятичное число (в коде определено как любой символ от '0' до '9'), то оно добавляется в массив after
.
Если введенный символ является десятичной точкой, то флаг устанавливается в значение true
, и все последующие введенные числа добавляются в массив after
.
После ввода всех чисел, код выводит значения обоих массивов.
Этот код предназначен для ввода чисел с клавиатуры и записи их в массив. Он проверяет, является ли введенный символ числом, и если это так, то добавляет его в массив. Если введенный символ является десятичной точкой, то он меняет флаг, чтобы начать запись десятичных чисел в другой массив.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д