четверг, 12 апреля 2012 г.

дан текст. определить, является ли он правильной десятичной записью целого числа.

определимся что есть "правильная запись десятичного числа"


  1. "1234" - да
  2. "056" - нет - так принято записывать 8-ричные числа
  3. "abc123" - нет - тут не только цифры
  4. "123.45" - нет - есть запятая, а значит это дробное


думаю, для начала этого достаточно, хотя нужно было бы ещё проверять запись с + и -, а так же научный подход с мантиссой

итак что надо сделать?

1. определить что строка не начинается с "0"
2. определить что в ней только цифры (отсеем дробные и строки с буквами)

этого достаточно чтобы сказать, что это правильная запись десятичного числа

char * s = "тут наша строка";

if (s[0] != '0')
{
     for (int i=0; i < strlen(s); i++)
     {
          bool error = false;
          if (!isdigit(s[i]))
          {
                error = true;
                break;
          }

          if (!error)
          {
                cout << "это правильная запись десятичного числа" << endl;
          }
     }
}

Комментариев нет:

Отправить комментарий