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

Реализовать односвязный список данных вида "Страна, город, количество населения" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Раскраска графа в два цвета (алгоритм BlackWhiteColoring) http://www.cyberforum.ru/cpp-beginners/thread320019.html
Здраствуйте! Хотела попросить помочь с программой. Дан неориентированный граф, его раскраска производится следующим образом: приписываем его вершинам цвета таким образом, что никакие две смежные...
C++ Разработка динамических структур данных и функций их обработки Длинное» целое число представляется как однонаправленный линейный список, где каждая цифра – элемент списка. Функции: • сформировать «длинное» целое число (функция формирует список из цифр числа)... http://www.cyberforum.ru/cpp-beginners/thread320011.html
Дейкстра на куче C++
Неверно выводит путь: #include <stdio.h> #include <malloc.h> const int m=50; const int n=5; const int B=10000; struct heap {
В однородном массиве вещественных чисел три наименьших элемента заменить нулями. C++
В однородном массиве вещественных чисел три наименьших элемента заменить нулями. Использовать printf и scanf. Понимаю, что программа легкая, но помогите, пожалуйста, голова вобще не варит( ...
C++ C++ x86 и x64 http://www.cyberforum.ru/cpp-beginners/thread319974.html
Есть ли в программировании в C++ x86 и x64?
C++ В одномерном массиве вещественных чисел поменять местами элементы с четными и нечетными индексами. В одномерном массиве вещественных чисел поменять местами элементы с четными и нечетными индексами. Помогите, пожалуйста. Хотя бы алгоритмом. подробнее

Показать сообщение отдельно
OcbMuHor
Заблокирован
16.06.2011, 21:25  [ТС]
Ну собственно вот и int main() маялся долго, пришел к такому пути решения. Не работает кейс 4. Вопросы такие:
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#include <iostream>
#include <string>
 
struct Node
{
    std::string Country;
    std::string City;
    long int City_people;
    Node *next;
};
 
int main()
{
    unsigned short i=0, k, n, l=0;
    Node *phead = new Node();
    Node *tmp;
    tmp = phead;
    long long int count=0;
    std::string key_Country;
    long int key_City_peoiple;
    std::cout <<"The long of List: ";
    std::cin >> k;
    do
    {
        i++;
        std::cin >> tmp->Country;
        std::cin >> tmp->City;
        std::cin >> tmp->City_people;
        tmp->next = new Node();
        if (i ==k) tmp->next = NULL;
        tmp = tmp->next;
    } while (i<k);
    std::cout << "\nFor continuation of work pus a keychar:";
    std::cout << "\n1: For the output a list.";
    std::cout << "\n2: For the input new intem (to the end of list)";
    std::cout << "\n3: For the delete item";
    std::cout << "\n4: For the make two lists on a sign: list Country, City_people < n, ";
    std::cout << "\nand list Country, City_people >=n. after maked two lists output";
    std::cout << "\n5: For the count all people of the list";
    std::cout << "\n6: For the exit of programm" << std::endl;
    std::cin >> k;
    switch (k)
    {
    case 1: for (tmp = phead; tmp != NULL; tmp = tmp->next)
            {
                std::cout << tmp->Country << "  " << tmp->City << "  " << tmp->City_people
                    << std::endl;
            }; 
    case 2: tmp = phead;
            do
            {
                tmp = tmp->next;
                if (tmp == NULL){
                    tmp = new Node();
                    std::cin >> tmp->Country;
                    std::cin >> tmp->City;
                    std::cin >> tmp->City_people;
                    tmp->next =NULL;
                    tmp=tmp->next;
                }
            } while (tmp != NULL);
    case 3: std::cout << "\nPlease select a nomber of list you want to delete" << std::endl;
            std::cin >> n;
            i=0;
            for (tmp = phead; tmp != NULL; tmp = tmp->next)
            {
                i++;
                if (i == n){
                    if (tmp != NULL){
                        if (tmp == phead){
                            phead = tmp->next;
                            delete (tmp);
                            tmp = phead; break;
                        }
                        else{
                            Node *tmp1 = new Node();
                            tmp1 = tmp->next;
                            delete (tmp);
                            tmp = tmp1;
                            delete (tmp1); break;
                        }
                    }
                    else break;
                }
            }
    case 4: Node *phead1, *phead2;
            Node *tmp1, *tmp2;
            phead1 = new Node();
            tmp1 = phead1;
            phead2 = new Node();
            tmp2 = phead2;
            i = 0;
            k = 0;
            std::cout << "\nPlease select a key from country: ";
            std::cin >> key_Country;
            std::cout << "\nPlease select a key from City people amount: ";
            std::cin >> key_City_peoiple;
            for (tmp = phead; tmp!=NULL; tmp=tmp->next)
            {
                if (tmp->Country == key_Country){
                    if (tmp->City_people < key_City_peoiple){
                        i++;
                        tmp1->Country = tmp->Country;
                        tmp1->City = tmp->City;
                        tmp1->City_people = tmp->City_people;
                        tmp1->next = new Node();
                        tmp1 = tmp1->next;
                        tmp1->=NULL;
                    }
                    else{
                        k++;
                        tmp2->Country = tmp->Country;
                        tmp2->City = tmp->City;
                        tmp2->City_people = tmp->City_people;
                        tmp2->next = new Node();
                        tmp2 = tmp2->next;
                        tmp2->next = NULL;
                    }
                }
            }
            for (tmp1 = phead1; l<i; tmp1=tmp1->next)
            {
                l++;
                if (l == i-1) tmp1->next = NULL;
            }
            l=0;
            for (tmp2 = phead2; l<k; tmp2=tmp2->next)
            {
                l++;
                if (l == k-1) tmp2->next = NULL;
            }
            std::cout <<"\nOutput List where people of Cities < " << key_City_peoiple;
                std::cout << std::endl;
            for (tmp1=phead1; tmp1!=NULL; tmp1=tmp1->next){
                std::cout << tmp1->Country << "  " << tmp1->City << "  ";
                std::cout << tmp1->City_people << std::endl;
            }
            std::cout <<"\nOutput List where people of Cities >= " << key_City_peoiple;
                std::cout << std::endl;
            for (tmp2=phead2; tmp2!=NULL; tmp2=tmp2->next){
                std::cout << tmp2->Country << "  " << tmp2->City << "  ";
                std::cout << tmp2->City_people << std::endl;
            }
    case 5: std::cout << "\n5: The count all people of the list is: ";
            for (tmp = phead; tmp != NULL; tmp = tmp->next)
            {
                count = count + tmp->City_people;
            }
            std::cout << count << std::endl;
    case 6: break;
    default: std::cout << "Mabe you mistake? please, try again." <<std::endl;
    }
return 0;
}
1. как бы так сообразить можно было рекурсию на switch, т.е. по завершении выполнения одного из условий или ввода не того символа вернуть выполнение программы на строку №33.
2. ошибка в кейс 4
[IMG]http://i.***********/i5/30/31/1633130/Bezymeny-1.jpg[/IMG]
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru