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

  • Автор темы 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
33
РБ. Минская обл.
#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);
 
Статус
Закрыто для дальнейших ответов.