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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2011, 11:09   #1
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию условие

Ответ скорее всего прост,но не могу придумать никак

Код:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int fact(int n)//в цикле со счётчиком умножают переменную на счетчик, который уменьшается на 1 со значения  = число факториал которого находят до 1

{
    int result=1;
    for(int i=n; i>=1; i--)
    {
        result*=i;
    }
    return result;
}
int main()
{
    setlocale(LC_ALL,"Rus");//русский язык
    int n;//переменная
    printf("Найдем значение выражения 1/0!+1/1!+...+1/n!\n\n");
    float sum;//переменная суммы
    printf("Введите n: ");
    scanf("%i",&n);
    for(int i=0; i<=n; i++)
    {
        sum+=1/(double)fact(i);//формула для вычисления
    }
    if (n>=0)
    printf("\nСумма = %.4f",sum);
    else
    printf("\nЧисло не может быть меньше нуля");
    getch();
}

Мне нужно условие,защита от дроби,тоесть если в консоли вводить дробное число писало "Ощибка.Введите целое неотрицательное число" Срочно
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 27.09.2011, 11:12   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Эм...А как вы хотите ввести дробь в одну переменную типа int?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.09.2011, 11:17   #3
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

n это количество 1/0!+1/1!+...+1/n!

Если ввожу меньше либо равно нуля пишет что ошибка введите еще раз а как сделать чтобы при вводе дроби тоже писало так же?
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 27.09.2011, 11:21   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Каким образом вы хотите впихнуть дробь в переменную целого типа? Или вы про exception?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.09.2011, 11:24   #5
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

Вообщем запустите программу,вы увидите что при вводе n<=0пишет ошибку введите еще раз,нужно еще сделать чтобы при вводе в консоли 1,38 например писало также ошибку введите целое неотрицательное n.Как это организовать?
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 27.09.2011, 11:30   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А теперь сами запустите программу, попробуйте ввести не целое число и посмотрите что будет (программа завершится с ошибкой). Вы хотите обработать исключение, чтобы вместо завершения программа просила пользователя ввести еще раз и т.д.? Тогда используйте\гуглите try ... catch
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 27.09.2011 в 12:10.
Alex11223 вне форума Ответить с цитированием
Старый 27.09.2011, 11:34   #7
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

у меня дев ошибок нет ни одной

Код:
Вы хотите обработать это исключение, чтобы вместо завершения программа просила пользователя ввести еще раз и т.д.?
Если у вас пишет ошибку,то можно сказать и так,в гугле не нашел,вот сюда и пишу,там скорее всего что то простое будет но никак в голову мысль не приходит
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 27.09.2011, 12:36   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
там скорее всего что то простое будет
Ну самое просто это вводить строку, а не число и заниматься ее парсингом.

Язык-то, кстати, какой? Си или С++?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.09.2011, 12:39   #9
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

Зачем так сильно усложнять?

Код:
Оказалась как всегда все намного проще,мысля все таки пришл добавил еще переменную float t и модифицировал маленько код

Код:
  
printf("Vvedite n: ");
    scanf("%f",&t);
    while(t<=0 ||t!=(int)t)
	{
    printf("\nNekorektnoe chislo\n");
    printf("\nVvedite n: ");
    scanf("%f",&t);
    }
    n = t;
Тему удалите
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 27.09.2011, 12:41   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Зачем так сильно усложнять?
А если пользователь введет вообще не число? А если предположить, что он умный и вводит только корректные данные, то зачем делали ошибки для отрицательных и дробных?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 27.09.2011 в 12:44.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условие SkrudjMakdak Microsoft Office Excel 3 02.09.2010 17:56
условие Maka111 Microsoft Office Excel 5 17.05.2009 18:25
условие Neymexa Общие вопросы .NET 3 19.04.2009 15:39
Условие(If then) Andreyka Общие вопросы Delphi 3 12.01.2009 15:30
Условие [Smarik] Паскаль, Turbo Pascal, PascalABC.NET 3 03.02.2008 08:08