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

Программа обсчитывает не правильно! - C++

Восстановить пароль Регистрация
 
shchurkoroman
2 / 2 / 0
Регистрация: 27.03.2012
Сообщений: 13
05.06.2012, 20:39     Программа обсчитывает не правильно! #1
Задача

На складе хранятся прямоугольные листы жести разных размеров. Листы расположены горизонтально на полу. Для экономии поверхности, они накладываются друг на друга, но так, чтобы лист лежащий выше, в целом размере был размещен на листе, который находится под ним. Кладовщик заботится о том, чтобы соответствующие края листов жести были параллельными, а в середины листов создавали единую стопку, лежа на одной вертикали. Чтобы приспособиться к листу жести, который находится ниже можно поворачивать его на 90 градусов вокруг центра.

Задание:

Напишите программу, которая для данных листов жести обсчитает минимальную площадь пола, учитывая вышеназванные требования.

Входные данные:

Стандартный вход содержит несколько наборов данных. Первая строка содержит один набор, неотъемлемое целое n (n <= 200) которое указывает на количество листов в проблеме. Если он равен 0, это означает конец данных. В последующих строках n содержит два положительных целых числа, означающие размеры листов в наборе данных.

Выходные данные

Стандартный выход содержит следующие строки, в которых указывается одно число, которое означает минимальную площадь поверх пола, требующейся для размещения листов согласно требованиям склада.

Вот код моей программы
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
#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])  square += tab[i][0]*tab[i][1];{}
        if (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;
}
Для входных данных:
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

Правильный ответ:
135
171

у меня совсем другое помогите решить эту задачку! Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2012, 20:39     Программа обсчитывает не правильно!
Посмотрите здесь:

Правильно ли работает программа? C++
C++ Программа работает не правильно
Не правильно считает программа C++
C++ Правильно ли написана программа
Программа правильно сохраняет, но не правильно считывает матрицу из файла C++
Правильно ли написана программа? C++
Программа не правильно дешифрует C++
Правильно ли написана программа? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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