Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2013, 23:15   #1
-=Oleg=-
Новичок
Джуниор
 
Регистрация: 25.11.2013
Сообщений: 2
Смущение проверка ввода на корректность

С.

люди, помогите с такой вот проблемой -- программка (№1)нужно проверить ввод(должно вводиться целое число) на корректность, полдня отвоевал, а толку чуть пробовал через isdigit(№2) получается то срабатывает-то нет, подскажите хотя бы куда копать, заранее спасибо.


№1
Код:
#include <stdio.h>
int main ()
{
int a;
  printf("Enter the year ");
  scanf("%ld", &a);
  		if (a%4==0)
			{
			if ((a%100==0)&&(a%400!=0))
				printf("365 days\n");
			else
				printf("366 days\n");
			}
		else
		printf("365 days\n");
 return 0;
}
№2
Код:
#include <stdio.h>
#include <ctype.h>
int main ()
{
int a;
  printf("Enter the year ");
  scanf("%ld", &a);
 if(isdigit(a))    
        {
 		if (a%4==0)
			{
			if ((a%100==0)&&(a%400!=0))
				printf("365 days\n");
			else
				printf("366 days\n");
			}
		else
		printf("365 days\n");
         }
  else printf("incorrect enter\n");
 return 0;
}

Последний раз редактировалось Stilet; 26.11.2013 в 13:03.
-=Oleg=- вне форума Ответить с цитированием
Старый 26.11.2013, 09:26   #2
Shad0wF1rst
Форумчанин
 
Регистрация: 11.01.2013
Сообщений: 149
По умолчанию

Подход у вас не понятный на проверку целого числа, есть стандартные функции, но так как я их плохо помню, нужно справочник открывать)))
Это примерно будет выглядеть так

Код:
bool isNumber (char *str, int size)
{
    for (int i = 0; i < size; i++) {
        if (!(str[i] >= '0' && str[i] <='9')) return false; 
    }
    return true;
}
Может это и чушь, но это моя чушь и я ее никому не отдам.
Shad0wF1rst вне форума Ответить с цитированием
Старый 26.11.2013, 13:02   #3
-=Oleg=-
Новичок
Джуниор
 
Регистрация: 25.11.2013
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Shad0wF1rst Посмотреть сообщение
Подход у вас не понятный на проверку целого числа, есть стандартные функции, но так как я их плохо помню, нужно справочник открывать)))
Это примерно будет выглядеть так

Код:
bool isNumber (char *str, int size)
{
    for (int i = 0; i < size; i++) {
        if (!(str[i] >= '0' && str[i] <='9')) return false; 
    }
    return true
}

спасибо, попробую.
а подход такой оттого что я Си только начал изучать (да ещё и на заочном, всё через гугл)(
-=Oleg=- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Корректность ввода из файла DonVito Общие вопросы C/C++ 0 28.05.2013 17:05
C++.Корректность ввода строки! Skull_psyhothik Помощь студентам 2 01.10.2012 19:40
Корректность ввода на СИ glebast Помощь студентам 4 14.09.2012 22:42
Проверка на корректность строк Ilya_L Microsoft Office Excel 5 22.06.2010 11:23
Проверка ячеек таблицы на корректность Rider-12 Microsoft Office Excel 14 22.06.2010 09:57