Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата 399Dmitr933:
вот же она или я что то не понимаю? »
Да, она. Инициализацию ph1, ph2 проглядел.
Нахождение строки в цикле мне все равно не понятно. Здесь ошибка.
Что значит "По заданию три цикла" ?
Три цикла всего? На всю программу? Или три цикла на решение (решение не учитывает в себе инициализацию переменных[подготовку входных данных]!)
Цитата 399Dmitr933:
подскажите как инициализировать? »
randomize в помощь.

----
Послушайте, а что это вообще за бред?
Причем здесь указатели? Проще то никак нельзя объявить? Зачем вам работа с памятью, если вы только циклы начали проходить?
Цитата 399Dmitr933:
float *a = new float[n];
float *b = new float[n];
float *p1 = new float[n];
float *p2 = new float[n]; »
----
Дальше самое решение.
Ладно, бог с ней, инициализацией. Допустим с горем пополам память выделили.
Цитата 399Dmitr933:
for (i=0;i<(n-5);i++)
{
a[i]=rand()%100-35;
b[i]=rand()%100-50;
} »
Назначили переменным некоторые значения.
По хорошему тут надо спросить. Где именно должны формироваться значения a[i], b[i]?
До циклов счета произведений ИЛИ во время счета циклов произведений?

Цитата 399Dmitr933:
for (i=1;i<(n-3);i++)
{
ph1=ph1*a[i];
p1[i]=ph1;
} »
Получили накопительное произведение, которое нас не просили получать.
Цитата 399Dmitr933:
for (i=0;i<(n-3);i++)
{
ph2=ph2*b[i+3];
p2[i]=ph2;
so=so+(p1[i]-p2[i]-5);
} »
Мало того мы здесь получаем накопительное произведение по b, мало того, что мы получаем его не правильно (не правильный диапазон n, не правильный диапазон b), так мы здесь еще умудряемся получать кукую то накопительную сумму от не до конца посчитанных произведений!!!
Далее хорошо бы уточнить, как именно соотносится переменная i=1..n в сумме, с i=1..(n-3) и i=3..(n) в произведениях, и в ai,bi ?
Допустим соотносятся верно и ошибок нет, и я просто паникую. Допустим.
Какой смысл считать 5 раз произведения, если от i (что в сумме) не зависит получаемое значение в скобках?
Может как то к умножению перейти?
----

Еще раз:
Записать выражение, пронумеровать порядок действий, в комментариях к циклам указать номер действия!(Это не прихоть, это объязаловка)
Проверить, что порядок выполняется правильно!

Т.к. сейчас вы просто что-то написали, не понимая "что именно" вы написали.
Строки с циклами (т.е. все что между float *p2 = new float[n]; и printf("%2.3f",so);) стереть, забыть и написать решение заново. Не забывая про нумерацию действий!

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Последний раз редактировалось lxa85, 29-06-2013 в 18:33.


Отправлено: 18:26, 29-06-2013 | #5