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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2009, 22:00   #1
Bl@st
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 47
По умолчанию Как вычислить сумму первых N элементов ряда

Здраствуйте помогите с заданием пожалуйста.
Вычислить сумму первых N элементов ряда: 1-(2/2)+(3/4)-(4/8)....

Код:
#include<stdio.h>
#include<math.h>
#include<windows.h>

void main(void)
{
	SetConsoleCP (1251);
	SetConsoleOutputCP (1251);

	double a,b,i=0;
	int n;

	printf("введите  n:\n");
	scanf("%d",&n);

	while(i<n)
		i++;
		a=(((i+2)-1))*(pow(-1,i));
		b=pow(2,i);
	printf("%f/%f\n",a,b);
}
Как мне вывести ответ в виде: 1-(2/2)+(3/4)-(4/8).... и т.д.?

Последний раз редактировалось Bl@st; 04.12.2009 в 22:03.
Bl@st вне форума Ответить с цитированием
Старый 04.12.2009, 22:15   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

как то так
Код:
while(i<n){
       if (i==0)
           printf("1");
		i++;
		a=(((i+2)-1))*(pow(-1,i));
		b=pow(2,i);
     	(a<0) ? printf("-(%.f/%.f)",abs(a),b) : printf("+(%.f/%.f)",a,b);
}

Последний раз редактировалось NiCola999; 04.12.2009 в 22:19.
NiCola999 вне форума Ответить с цитированием
Старый 05.12.2009, 20:15   #3
Bl@st
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 47
По умолчанию

NiCola999
нет не работает, получается зацикливается на 1, т.к.
Код:
double a,b,i=0;
, а снизу
Код:
(a<0) ? printf("-(%.f/%.f)",abs(a),b) : printf("+(%.f/%.f)",a,b);
я так понял будет чередование знаков + или -(если выполняется условие второе, если нет то первое, не работает "warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data"
), у меня это в формуле реализовано, а мне нужен ответ просто в таком виде: "1-(2/2)+(3/4)-(4/8).... " может в цикл его загнать?
..не заметил у вас она как раз в цикле, извиняюсь

Последний раз редактировалось Bl@st; 05.12.2009 в 20:23.
Bl@st вне форума Ответить с цитированием
Старый 05.12.2009, 20:49   #4
Bl@st
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 47
По умолчанию

Код:
if(a<0)
			printf("-(%.f/%.f)",abs(a),b);
		else
			printf("+(%.f/%.f)",a,b);
там где abs абсолютное число выводит 0/0
Bl@st вне форума Ответить с цитированием
Старый 05.12.2009, 22:35   #5
Bl@st
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 47
По умолчанию

все спасибо разобрался покополся в хелпе для типа double -> fabs()
Bl@st вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычислить сумму ряда ANRJumper Помощь студентам 5 26.05.2009 14:45
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива HazelHen Общие вопросы C/C++ 2 29.03.2009 15:16
Вычислить бесконечную сумму ряда С++ Fishka Общие вопросы C/C++ 9 22.12.2008 18:23
Вычислить сумму ряда Alex1991 Помощь студентам 1 09.11.2008 19:22