Тема: С/C++
Показать сообщение отдельно
Старый 11.10.2015, 21:30   #74
Cygnus X-1
 
Аватар для rainwalker

 
Регистрация: 20.07.2006
Сообщений: 1,568
Репутация: 1324 [+/-]
Народ, спс всем за поддержку. Все получилось. Подскажите плз с другой задачкой.

Надо посчитать такое выражение

1+2-3+4-5....+n-(n+1). Количество шагов задается самостоятельно.

Получилось:

Скрытый текст:
a - количество шагов цикла
d - конечный результат выражения
n - число, модуль которого каждый шаг цикла увеличивается на 1 и котрое
меняет знак

Создаю две отдельные функции:
batman() - создает модуль числа n каждый шаг цикла
superman() - меняет знак каждый шаг цикла

d=1;
n=2;
scanf("%d", &a);
for(b=o; a>=b; b+1, n=(batman(n)+1)*superman(n)) т. о. n увеличивается на 1 и меняет знак каждый шаг цикла

{
d=d+n;
printf("%d", n);
}
printf("%d", d); /конечный результат выражения

int batman(int y) / эта часть работает нормально. Создает модуль n
{
int x;
x=y;
while(x<0)
{
x=x*(-1);
}
return x;
}


int superman(int z) / а вот с этой какие-то проблемы. Должна менять знак каждый шаг цикла
{
int u;
int t;
t=1;
while(z>0, t<2)
{
u=-1;
t=2;
}
while (z<0; t<2)
{
u=1;
t=2;
}
return u;
}
__________________
"Не хотите ли к нам присоединиться?" - спросил меня как-то знакомый, повстречав меня после полуночи в почти опустевшем кафе. "Нет, не хочу",- ответил я.

Последний раз редактировалось rainwalker; 11.10.2015 в 21:39.
rainwalker вне форума  
Ответить с цитированием