Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите начинающему программисту

2.4K
15 октября 2002 года
tiff
1 / / 15.10.2002
Всем привет! Дело обстоит вот в чем. Я написал программу на Си(турбо си) (форума по теме Си я что-то не нашел на этом сайте). Она у меня работает и выводит на экран разложение натурального числа на простые множители. Но от меня требуют, чтобы она работала в любых случаях, а именно: при вводе некорректных чисел с клавиатуры выводилось сообщение - ERROR!. Ну, например, если ввести "4u", то программа у меня все равно выдает результат 2*2, а не должна. Использованные операторы:
printf("Enter number: ");
scanf("%d", &N);
Проверку чисел вида 1.2 5.03 ну и т.д. я уже сделал.(использовал метод преобразования типов) Но осталась проблема с числами вида 4.000000000000000000000000000000000000000001 - моя проверка не действует(выдается "плохая" ошибка - че-то несоответствие типов с плавающей точкой...я честно говоря не очень понял... - а должны выдаватся фразы об ошибках, написанные в программе). или чтобы выдавала разложение такого числа 4.00000000000000000000000
Еще чтобы программа выдавала ошибку при вводе числа ну например 1000000000000000000000000000000000000000000000000000000000000000000 ...00000
.
При вводе анологичных чисел но со знаком "минус"
Итак!
1). 4h - выдавать ошибку
2). 4.00000000000000000000000000000001 выдавать ошибку
3). 100000000000000000000000000000000000000000000000000000000000 - выдвать ошибку
4). 4.00000000000000000000000000000000000000000000000000000 - не выдавать ошибки(если так вообще можно сделать)
5). ну и отключить вообще отрицательные числа + 1), 2), 3), 4) - со знаком минус
ЗАРАНЕЕ БЛАГОДАРЕН!
293
16 октября 2002 года
SEDEGOFF
586 / / 06.10.2002
Ты работаешь под винду?
Если да - то используй исключения. Ими все и отловишь.
Вот например
try
{
int y;
y = StrToInt("4U");
}
catch(EConvertError& )
{
ShowMessage("Вы ввели неверное число. Попробуйте еще раз.");

}
3
16 октября 2002 года
Green
4.8K / / 20.01.2000
А если не под винду, то исключения не прокатывают?
Учите матчасть!

Цитата:
Originally posted by SEDEGOFF
Ты работаешь под винду?
Если да - то используй исключения. Ими все и отловишь.
Вот например
try
{
int y;
y = StrToInt("4U");
}
catch(EConvertError& )
{
ShowMessage("Вы ввели неверное число. Попробуйте еще раз.");

}

:x

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог