Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 528
#1

условие - C++

27.09.2011, 11:08. Просмотров 359. Ответов 6
Метки нет (Все метки)

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

Код
#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();
}

Мне нужно условие,защита от дроби,тоесть если в консоли вводить дробное число писало "Ощибка.Введите целое неотрицательное число" Срочно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2011, 11:08     условие
Посмотрите здесь:

Условие - C++
Извиняюсь за данную тему, просто я чайник ,скажите что значит это условие? char buf; if(*buf=='0') *buf=0;

Условие в while - C++
подскажите пожалуйста, могу ли я таким образом задавать условие в while как ниже в коде. Мне в принцепи надо что бы выполнялось до тех пор...

Условие - C++
Помогите составить условие: if (0=pow(x,s)+1) Выдаёт: error: lvalue required as left operand of assignment

Условие - C++
Добрый вечер! Казалось бы простенькая задачка, но никак не могу довести ее до ума. Может кто подскажет. Собственно задача Даны 2...

Условие - C++
подскажите пожалуйста как можно сделать условие: если одно из нескольких равно N, то ......

условие в if - C++
у меня есть условие if (str!='0' &amp;&amp; str!='1' &amp;&amp; str!='2' &amp;&amp; str!='3' &amp;&amp; str!='4' &amp;&amp; str!='5' &amp;&amp; str!='6' &amp;&amp; str!='7' &amp;&amp; str!='8' &amp;&amp;...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
27.09.2011, 11:19     условие #2
Цитата Сообщение от a.n.o.n.i.m Посмотреть сообщение
C++
1
sum+=1/(double)fact(i);//формула для вычисления
для такого присваивания нужно sum инициализировать начальным значением.

Цитата Сообщение от a.n.o.n.i.m Посмотреть сообщение
Мне нужно условие,защита от дроби,тоесть если в консоли вводить дробное число писало
Для этого нужно читать строку, потом если все нормально преобразовывать в число.
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 528
27.09.2011, 11:22  [ТС]     условие #3
конкретно условие if() можете написать?что если n не целое то ошибка
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
27.09.2011, 11:28     условие #4
Для scanf("%i",&n); в n по определению не может попасть дробное число, так как задан тип переменной, куда производиться считывание, как целое число. При вводе вся нечисловая информация будет осавлена в буфере. Т.е. если будет введено, допустим "1234.53", в n попадет 1234, а ".53" останется в буфере.
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 528
27.09.2011, 11:32  [ТС]     условие #5
Выходит никак не сделать условие от неверного заполнения?просто нужно чтоб при вводе со знаком писал ошибку
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
27.09.2011, 11:53     условие #6
Я же писал, тогда используй строки. Считываешь строку, пробегаешь посимвольно, если очередной символ не цифра, то выдаем обшибку, если строка нормальная, то преобразуем в число.
C
1
2
3
4
5
6
7
8
9
10
char num;
int n;
scanf("%s", str);
for (int i = 0; i < strlen(num); i++)
   if (num[i] < '0' || num[i] > '9')
   {
      /*обрабатываем ошибку*/
   }
/*Если все нормально, преобразуем строку в число*/
n = atoi(num);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2011, 12:33     условие
Еще ссылки по теме:

условие - C++
Если сумма трех попарно-различный действительных чисел x, y,z, меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух...

Условие if - C++
Народ помогите составить условие, пишу игру, имеется пуля размером 8х8 и корабль 37х37 , подскажите как сделать проверку попала ли пуля в...

обьясните условие - C++
минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. например 1 2 3 4 5 6 7 8 9 побочная...

задать условие if - C++
Ребят такая проблема, в проге нужно задать &quot;проверку на дурака&quot;, т.е если ты вводиш символ или отрицательное число или 0 или меньше 1 , то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 528
27.09.2011, 12:33  [ТС]     условие #7
а if(условие) какое нить придумать?

Добавлено через 35 минут
Оказалась как всегда все намного проще,мысля все таки пришл добавил еще переменную 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;
Тему удалите
Yandex
Объявления
27.09.2011, 12:33     условие
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru