Форум программистов, компьютерный форум CyberForum.ru

Найти знакопеременную сумму элементов последовательности - C++

Восстановить пароль Регистрация
 
wsa
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
02.10.2013, 22:40     Найти знакопеременную сумму элементов последовательности #1
Помогите понять, что у меня не так с программой??
Дан список из n целых неотрицательных чисел:a1,a2,..,an. Найти: a1-a2+..+(-)an. */
C++ (Qt)
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
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <windows.h>
 
using namespace std;
 //элемент списка
struck List
{ int info;
List *pred, *next;
};
float main ()
    List *head, *tail;
    float S;
{
    List *head, *tail;
    CreateList (head,tail);
    cout << "Исходный список: "<< endl;
    PrintList(head,tail);
    cout << "Сумма:"<<endl;
    SumList (head,tail);
    cin >> S;
    system ("pause");
    return;
 
 
// Создание односвязного списка
void CreatList (List* &head, List* &tail)
{
    head = new List;
    tail - new List;
    head -> next = tail
    tail -> next = head;
    cout << "Введите числа до 0" << endl;
    int k;
    cin >> k;
    while (k != 0)
    {
        List *p;
        p = new List;
        p -> info = k;
        p -> next = tail;
        tail -> next = p;
        cin >> k;
    }
    return;
}
 
    //функция выводит список
    void PrintList (List *head)
    {
        List *p = head -> next;
        while (p != tail)
        {
            cout << setw(4) << p -> info;
            p = p -> next;
        }
        cout << endl;
        return;
    }
 
    //функция высчитавает сумму списка
    float SumList (List* &head, List* &tail)
    { float S
        List *p = head -> next
            double S = 0;
            while (p != 0)
                for (int i = 0; i < n; i++)
                {
                    if ((i%2) = NULL)
                    { 
                        S += p -> info
                    else
                        S -= p -> info;
                    }
                cout << endl;
                return
                }
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
02.10.2013, 23:56     Найти знакопеременную сумму элементов последовательности #2
Цитата Сообщение от wsa Посмотреть сообщение
head = new List;
tail - new List;
Здесь явно что-то не так)

Хотя не так во всей CreatList .... Сделай так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    head = 0;
    cout << "Введите числа до 0" << endl;
    int k;
    cin >> k;
    while (k != 0)
    {
        List *p = new List;
        p -> info = k;
        p->next = 0;
        if (head = 0) head = p;
        else head->next = p; //добавляем в конец
        tail = p; //этот конец, естест-но, обновляется
        cin >> k;
    }
wsa
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
03.10.2013, 00:01  [ТС]     Найти знакопеременную сумму элементов последовательности #3
а ну там равно, исправила уже. а почему не работает? много ошибок выдает., которых я не понимаю, не знаю как исправить(((
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
03.10.2013, 11:19     Найти знакопеременную сумму элементов последовательности #4
Приведи ошибки, чтоль..
Yandex
Объявления
03.10.2013, 11:19     Найти знакопеременную сумму элементов последовательности
Ответ Создать тему
Опции темы

Текущее время: 00:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru