Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Burub
0 / 0 / 0
Регистрация: 23.09.2011
Сообщений: 14
1

все элементы в массиве, кроме 1, нужно заменить суммой предыдущих элементов

03.07.2012, 17:49. Просмотров 880. Ответов 4
Метки нет (Все метки)

Ребят очень нужна помощь имеется задача суть такова : все элементы в массиве, кроме 1, нужно заменить суммой предыдущих элементов, например тест: есть массив из 5 элементов:
1 2 3 4 5 ---> 1 3 6 10 15. Нужно теперь, что бы эта задача была сделана с помощью связанного списка, я эту тему не особо понимаю (лежал в больнице когда проходили, а сам как не разбирался все равно не понимаю)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
 
int main ()               //ввод переменных
{ int n;
  int s;
  int prom;
  int i;
 
 
 
 
cout<<"vvedite n";
cin>>n;                      //размерность массива
 
 
 
int *p=new int[n];            //ввод масисва
  for(i=0;i<n;i++)
   cin>>p[i];
   s=p[0];
 
 
  for(i=1;i<n;i++)        //обработка данных   в соотвествии с заданием.
  {
  prom=p[i];
  s=s+prom;
  p[i]=s;
}
 
 
for(i=0;i<n;i++)            //вывод обработанного масива.
{n<<p[i];
cout<<setw(3)<<p[i]<<endl;}
getch ();
return (0);
}
Я попробовал, но у меня получается какой то бред, прошу помощи.
Вот что получилось (не кидайтесь тапками, знаю поршиво )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <conio.h>
#include <iomanip.h>
 
using namespace std;
 
struct node
{
    int elem;
    node *next;
};
 
void main()
{
    node *p, *t;
    int el,n,prom,s,i;
 
    cout<<"Number of elements: ";
    cin>>n;
 
    p=new(node);
    t=p;
    (*t).next=NULL;
    cout<<"Elements of list: "<<endl;
 
    for(int i=0; i<n; i++)
    {
        cin>>el;
        s=(*t).elem;
        (*t).next=new (node);
        t=(*t).next;
        (*t).elem =el;
        (*t).next=NULL;
    }
for(i=1;i<n;i++)
{
  prom=el;
  s=s+prom;
  el=s;
}
for(i=0;i<n;i++)            //вывод обработанного масива.
{n<<el;
cout<<setw(3)<<(*t).elem<<endl;}
getch ();
}
Добавлено через 7 минут
если можно, то желательны комментарии, смогу хоть разобраться с этой темой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2012, 17:49
Ответы с готовыми решениями:

В массиве A (n) каждый элемент, кроме первого заменить суммой всех предыдущих элементов
В массиве A (n) каждый элемент, кроме первого заменить суммой всех предыдущих...

Каждый элемент массива, кроме первого, заменить суммой всех его предыдущих элементов
Дан массив А. Каждый его элемент, кроме первого, заменить суммой всех его...

Все элементы, кроме первого, заменить средним арифметическим всех предыдущих
Все элементы, кроме первого, заменить средним арифметическим всех предыдущих.

В массиве B(n) каждый элемент,кроме первого, заменить суммой всех предедущих элементов
Доброго времени суток,прошу помочь мне в решении нескольких задач. Задача № 1...

Каждый элемент заданного массива заменить суммой всех предыдущих элементов (нарастающий итог)
День добрый! Ребята, хотел проконсультироваться, правильно ли я понял задачу...

4
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
03.07.2012, 18:05 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
 
struct node {
    int data;
    node *next;
    node(int k) : data(k), next(0) {}
} *head = 0;
 
void add(int data) {
    if (!head) {
        head = new node(data);
        return;
    }
    node *cur = head;
    while(cur->next)
        cur = cur->next;
    cur->next = new node(data);
}
 
void print() {
    if (!head) {
        std::cout << "List is empty.";
        return;
    }
    node *cur = head;
    while (cur) {
        std::cout << cur->data << " ";
        cur = cur->next;
    }
    std::cout << std::endl;
}
 
void transform() {
    node *cur = head->next;
    int curSum = head->data;
 
    while (cur) {
        cur->data += curSum;
        curSum = cur->data;
        cur = cur->next;
    }
}
 
void destr() {
    node *cur;
    while (head) {
        cur = head;
        head = head->next;
        delete cur;
    }
}
 
int main() {
    const int size = 10;
    for (int i = 0; i < size; ++i)
        add(i + 1);
    std::cout << "before: ";
    print();
 
    transform();
    std::cout << "after: ";
    print();
    destr();
    return 0;
}
почитай в сети про списки, тема не сложная
0
Burub
0 / 0 / 0
Регистрация: 23.09.2011
Сообщений: 14
03.07.2012, 18:12  [ТС] 3
Странно, у меня программа сразу закрывается, среда rad studio.
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
03.07.2012, 18:13 4
C++
1
system("pause");
добавь перед ретерном
0
Burub
0 / 0 / 0
Регистрация: 23.09.2011
Сообщений: 14
03.07.2012, 18:14  [ТС] 5
Спасибо, буду разбираться
0
03.07.2012, 18:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2012, 18:14

Если в данном массиве нет отрицательных элементов, то сформировать новый массив: каждый элемент которого является суммой предыдущих элементов.
Если в данном массиве нет отрицательных элементов, то сформировать новый...

В квадратной целой матрице заменить все нечетные элементы суммой элементов главной диагонали
В квадратной целой матрице заменить все нечетные элементы суммой элементов...

в одномерном массиве А состоящем из N элементов найти максимальные элементы и все элементы равные максимальному заменить на 0.
в одномерном массиве А состоящем из N элементов найти максимальные элементы и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru