Необходимо реализовать проверку данных, введенных с клавиатуры, на принадлежность к числу - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Помогите пожалуйста разобраться.

Кратко:

Необходимо реализовать проверку данных, введенных с клавиатуры, на принадлежность к числу. Диапозон введенного, грубо говоря, от -99999.99999 до 99999.99999.

Подробнее:

Пользователю необходимо заполнить элементы матрицы размером 4x5 числами (типа float). Создаю цикл конструкцией for. Не смог разобраться как правильно использовать функцию isdigit (другого подхода к решению проблемы не придумал). Очень интересует как можно реализовать код, чтобы при введении не численного значения, пользователь повторял попытку. Например:
char ch;
int i,j;
float A[4][5];
for(i=0;i<4;i++)
    for(j=0;j<5;j++)
    {
    printf(" Matrix A\n\n");
    printf("   Enter A[%i][%i] = ",i+1,j+1);
ch = getchar();
if (ch==' ') break;
if(isdigit(ch))               
{       
A[i][j]=ch;
}
else j--;
    system("cls");
    }
При вводе русских букв, или нескольких символов, шаг цикла все равно меняется. Хотелось бы устранить это.
Или подскажите, какими способами можно осуществить проверку данных

Решение задачи: «Необходимо реализовать проверку данных, введенных с клавиатуры, на принадлежность к числу»

textual
Листинг программы
{
ret=1;//По умолчанию считаем что у нас в прошлый раз не было ошибки(ret->return result =1)
do//цикл
{
if (!ret)printf("\nError input value!\n");//Если ret==0 то есть ошибка была в прошлый раз
printf("Enter A[%i][%i] = ",i+1,j+1);
gets(buf);//вводим строку
}
while ( !(ret=is_float_correct(buf,&A[i][j])));//пока ret==0, то есть пока функция не вернет 1
//system("cls");
}

Объяснение кода листинга программы

  1. {
  2. ret=1;
  3. do
  4. {
  5. if (!ret)printf(\nError input value!\n);
  6. printf(Enter A[%i][%i] =,i+1,j+1);
  7. gets(buf);
  8. }
  9. while ( !(ret=is_float_correct(buf,&A[i][j])));
  10. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы