Операторы цикла

  • Автор темы Maxxy
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

Maxxy

#1
Помогите плиз с задачей на Си

Дана непустая последовательность положительных чисел x1,x2,x3,..xn (n заранее не известно), за которыми следует отрицательное число. Вычислить величину n*x1+(n-1)*x2+...+xn
 
M

Maxxy

#3
int i,s,n;
for(i=0;a>0;i++)
n=i-1;
s=0;
for(i--;i>=0;i--);
s+=i*a[n-i];


Требуется доработка
 
M

Maxxy

#5
Помогите с кодом елы-палы,я уже одуревший с этой задачи,эта гр*цензура*ая рекуррентная последовательность вообще уже мозги запарила<_<

#include <stdio.h>
int main () {
int i, n, a, s;
printf ("Vvedite kol-vo chisel: ");
scanf ("%d", &n);
printf ("vvedite %d chisel: ", n);
scanf ("%d", &s);
for(i = 1; i < n ; i++) {
scanf ("%d", &a);
n=1-i;
s=n*i;
}
printf ("%d", s);
return 0;
}
 

Over

Well-known member
04.07.2007
116
0
#6
У тебя дан массив. Он может быть любой длины. Ну для выполнения задачи возми 256, например. И вот с самого начала в этом массиве начинаются целые положительные числа. 1-й, 2-й, 3-й элемент и так далее... 10-й, 20-й... И потом на каком-нибудь элементе бац! и встрецается отрицательное число! Вот! Тебе нужно будет найти индекс этого отрицательного элемента. Это будет твоё n. После этого вычислить формулу.
Алгоритм такой:
1) Объявляешь массив.
2) генеришь рандомом в него числа (randomize или rnd), причём так, чтобы после нескольких положительных сгенерилось отрицательное.
3) выполняешь цикл фор от нуля до конца массива, просматриваешь элементы массива
4) если элемент попался отрицательный, то индекс элемента записывай в какую-нибудь переменную, а из цикла break;
5) дальше выполняешь цикл от 0 (нуля) до индекса найденного элемента
6) в каждой итерации цикла находишь значение произведения:
Код:
result = 0;
for (i = 0; i < n; i++)
result += (n-i)*x[i];
printf("%d", result);
 
Статус
Закрыто для дальнейших ответов.