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

Листы жести - минимальную площадь - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ rand() не случайный http://www.cyberforum.ru/cpp-beginners/thread560126.html
почему на кажджой итерации rand() выдает одно и тоже значение ? srand((unsigned)time(NULL)); vector<const string> var(4); var = "Integer"; var = "Float"; var = "String"; var = "Date"; int type_num ; string rands;
C++ Удалить из последовательности первый по порядку элемент, наиболее близкий по значению к среднему арифметическому Помогите пожалуйста составить программу: Даны целые числа a1, ..., an. Удалить из последовательности первый по порядку элемент, наиболее близкий по значению к среднему арифметическому чисел последовательности. Тема: Одномерные массивы http://www.cyberforum.ru/cpp-beginners/thread560115.html
C++ рогалики, изображение в консоли
здравствуйте, решил попробовать написать простую игру, простенький рогалик. Столкнулся с двумя проблемами: при перерисовки консоли мигает консоль (использую полную очистку консоли через system("cls"); и функцию Sleep(); ), и вторая проблема - не умею пользоваться хуками, а опрашивать клавиши при помощи функции GetAsyncKeyState(); немного неприятно, почему -то кажется что с хуками было бы...
Ввод и сохранение данных вектора C++
эсть програма но нужно добавить несколько функцый помогите кому не сложно #include "stdafx.h" #include <iostream> #include <algorithm> #include <vector> using namespace std; vector <int> bable (vector <int> & v) {
C++ Вывести журнал успеваемости студентов группы в алфавитном порядке http://www.cyberforum.ru/cpp-beginners/thread560090.html
Нужно написать код для решения следующей задачи Имеются сведения об успеваемости студентов факультета, который включают фамилию и инициалы студента, номер группы и оценки по m предметам.Студент считается среднестатистическим по k-ому предмету, если его оценка наиболее близка к средней оценке группы студентов по данному предмету. Обеспечить ввод и хранение информации об успеваемости...
C++ Колода карт реализация колоды карт :wall: подробнее

Показать сообщение отдельно
shchurkoroman
2 / 2 / 0
Регистрация: 27.03.2012
Сообщений: 13
05.06.2012, 19:14  [ТС]     Листы жести - минимальную площадь
Всем привет доработал программу но НЕ ДО КОНЦА
вот код:

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
#include <iostream>
#include <fstream>
 
using namespace std;
 
void swap (int *a, int *b)
{
    int tmp=*a;
    *a=*b;
    *b=tmp;
}
 
void bubblesort(int tab[][2], int size)
{
    for(int i=0; i < size; ++i) {
        for(int j=0; j < size-i; ++j) {
            if(tab[j][1]<tab[j][0]){
                swap(&tab[j][0], &tab[j][1]);
            }
        }
    }
}
 
void bubblesort1(int tab[][2], int size)
{
    for(int i=0; i < size; ++i) {
        for(int j=1; j < size-i; ++j) {
            if(tab[j][0]>tab[j-1][0]) {
                swap(&tab[j][0], &tab[j-1][0]);
                swap(&tab[j][1], &tab[j-1][1]);
            }
        }
    }
}
 
void bubblesort2(int tab[][2], int size)
{
    for(int i=0; i < size; ++i) {
        for(int j=1; j < size-i; ++j) {
            if(tab[j][0]*tab[j][1] > tab[j-1][0]*tab[j-1][1]) {
                swap(&tab[j][0], &tab[j-1][0]);
                swap(&tab[j][1], &tab[j-1][1]);
            }
        }
    }
}
 
int square(int tab[][2], int size)
{
    int square=tab[0][0]*tab[0][1];
    for(int i=1; i < size; ++i)
    {
        if ((tab[i][0] > tab[i-1][0] && tab[i][0] > tab[i-1][1]) || (tab[i][1] > tab[i-1][0] && tab[i][1] > tab[i-1][1])) square += tab[i][0]*tab[i][1];
    }
    return square;
}
 
int main()
{
    int n,k;
    
    cin>>k;
    while (k)
    {
        int rozmiar[k][2];
        for (int i=0; i<k; ++i) cin>>rozmiar[i][0]>>rozmiar[i][1];
        bubblesort(rozmiar, k);
        bubblesort1(rozmiar, k);
        bubblesort2(rozmiar, k);
        cout<<square(rozmiar, k)<<endl;
        cin>>k;
    }
 
    ifstream in("Bin.txt");
    ofstream out("Bout.txt");
    if(in == NULL)    {    
    printf (" Blad odczytu pliku Bin.txt\n");
    return 0;
    }
    in>>n;
    while (n)
    {
        int rozmiar[n][2];
        for (int i=0; i<n; ++i) in>>rozmiar[i][0]>>rozmiar[i][1];
        bubblesort(rozmiar, n);
        bubblesort1(rozmiar, n);
        bubblesort2(rozmiar, n);
        out<<square(rozmiar, n)<<endl;
        in>>n;
    }
    in.close();
    out.close();
 
    return 0;
}

для данных

14
20 1
1 19
2 9
2 10
1 15
4 5
9 2
1 8
2 7
2 9
7 2
2 3
4 4
4 3

12
10 10
9 9
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
7 5
2 4

12
10 10
9 9
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
7 5
9 4
0

результат должен быть

150
143
196

А у меня
83
143
136
Помогите решыть даную проблему!

Добавлено через 48 минут
Цитата Сообщение от shchurkoroman Посмотреть сообщение
Всем привет доработал программу но НЕ ДО КОНЦА
вот код:

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
#include <iostream>
#include <fstream>
 
using namespace std;
 
void swap (int *a, int *b)
{
    int tmp=*a;
    *a=*b;
    *b=tmp;
}
 
void bubblesort(int tab[][2], int size)
{
    for(int i=0; i < size; ++i) {
        for(int j=0; j < size-i; ++j) {
            if(tab[j][1]<tab[j][0]){
                swap(&tab[j][0], &tab[j][1]);
            }
        }
    }
}
 
void bubblesort1(int tab[][2], int size)
{
    for(int i=0; i < size; ++i) {
        for(int j=1; j < size-i; ++j) {
            if(tab[j][0]>tab[j-1][0]) {
                swap(&tab[j][0], &tab[j-1][0]);
                swap(&tab[j][1], &tab[j-1][1]);
            }
        }
    }
}
 
void bubblesort2(int tab[][2], int size)
{
    for(int i=0; i < size; ++i) {
        for(int j=1; j < size-i; ++j) {
            if(tab[j][0]*tab[j][1] > tab[j-1][0]*tab[j-1][1]) {
                swap(&tab[j][0], &tab[j-1][0]);
                swap(&tab[j][1], &tab[j-1][1]);
            }
        }
    }
}
 
int square(int tab[][2], int size)
{
    int square=tab[0][0]*tab[0][1];
    for(int i=1; i < size; ++i)
    {
        if ((tab[i][0] > tab[i-1][0] && tab[i][0] > tab[i-1][1]) || (tab[i][1] > tab[i-1][0] && tab[i][1] > tab[i-1][1])) square += tab[i][0]*tab[i][1];
    }
    return square;
}
 
int main()
{
    int n,k;
    
    cin>>k;
    while (k)
    {
        int rozmiar[k][2];
        for (int i=0; i<k; ++i) cin>>rozmiar[i][0]>>rozmiar[i][1];
        bubblesort(rozmiar, k);
        bubblesort1(rozmiar, k);
        bubblesort2(rozmiar, k);
        cout<<square(rozmiar, k)<<endl;
        cin>>k;
    }
 
    ifstream in("Bin.txt");
    ofstream out("Bout.txt");
    if(in == NULL)    {    
    printf (" Blad odczytu pliku Bin.txt\n");
    return 0;
    }
    in>>n;
    while (n)
    {
        int rozmiar[n][2];
        for (int i=0; i<n; ++i) in>>rozmiar[i][0]>>rozmiar[i][1];
        bubblesort(rozmiar, n);
        bubblesort1(rozmiar, n);
        bubblesort2(rozmiar, n);
        out<<square(rozmiar, n)<<endl;
        in>>n;
    }
    in.close();
    out.close();
 
    return 0;
}

для данных

14
20 1
1 19
2 9
2 10
1 15
4 5
9 2
1 8
2 7
2 9
7 2
2 3
4 4
4 3

12
10 10
9 9
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
7 5
2 4

12
10 10
9 9
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
7 5
9 4
0

результат должен быть

150
143
196

А у меня
83
143
136
Помогите решыть даную проблему!
Проблема в сортировке только где она? Помогите разобраться!
 
Текущее время: 14:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru