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

Отсортировать массив(структуры) - C++

Восстановить пароль Регистрация
 
ozzy_b
2 / 2 / 0
Регистрация: 02.10.2012
Сообщений: 169
13.11.2012, 21:48     Отсортировать массив(структуры) #1
Задано сведения о кубиках: размер кубика (длина ребра), цвет (красный, желтый, зеленый или синий), материал (деревянный, металлический, картонный). Выдать на печать:
 количество кубиков каждого цвета и их суммарный объем;
 количество деревянных кубиков с ребром 3 см;
 количество металлических кубиков с ребром более 5 см;
 Отсортировать записи по их длине ребра.

Первые 3 задания я сделал, а вот как посортовать я не знаю. Друг дал "кусок" со своей програмы но я не знаю как его интерпретировать в свой код.

Мой код:
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
#include <iostream>
#include <stdio.h>
#include <conio.h>
const int m=4;
using namespace std;
struct cub
{
       int size;
       char color[10];
       char material[10];
};
void inp(cub [m]);
void out(cub [m]);
void count_color(cub [m]);
void count_wood_3(cub [m]);
void count_iron_5(cub [m]);
void sort (cub [m]);
int main()
{
    cub a[m];
    int cout_iron=0, V=0;
    inp(a);
    out(a);
    count_color(a);
    count_wood_3(a);
    count_iron_5(a);
    sort (a);
    getch();
}
void inp(cub a[m])
{
     cout<<"\n************************\n\tInput\n************************"<<endl;
     for(int i=0;i<m;i++)
     {
        cout<<"Input "<<i+1<<" cub"<<endl;
        cout<<"Input colour(red, green, blue, yellow):  ";
        cin>>a[i].color;
        cout<<"Input material(carton, wood, iron):  ";
        cin>>a[i].material;
        cout<<"Input size:  ";
        cin>>a[i].size;
        cout<<endl;
    }
}
void out(cub a[m])
{
    cout<<"\n************************\n\tOutput\n************************"<<endl;
    for(int i=0;i<m;i++)
     {
        cout<<"Entered "<<i+1<<" cub:"<<endl;
        cout<<"Color: ";
        cout<<a[i].color<<endl;
        cout<<"Material:  ";
        cout<<a[i].material<<endl;
        cout<<"Size:  ";
        cout<<a[i].size<<endl<<endl;
    }
}
void count_color(cub a[m])
{
    cout<<"\n************************\n\tCout color\n************************"<<endl; 
    int count_r=0, count_g=0, count_b=0, count_y=0;
    for(int i=0; i<m; i++)
    {
        if (strcmp(a[i].color,"red")==0)
            count_r++;
        if (strcmp(a[i].color,"yellow")==0)
            count_y++;
        if (strcmp(a[i].color,"blue")==0)
            count_b++;  
        if (strcmp(a[i].color,"green") == 0)
            count_g++;
     }
     cout<<endl<<"Red cubs count= "<<  count_r << "\tGreen cubs count= " << count_g << "\tBlue cubs count= " << count_b<< "\tYellow cubs count= " << count_y <<endl;
}
void count_wood_3(cub a[m])
{
    cout<<"\n************************\n\tOutput wood / size 3\n************************"<<endl; 
    int count=0;
    for(int i=0; i<m; i++)
    {
        if (strcmp(a[i].material,"wood")==0 && (a[i].size==3))
            count++;
    }
    cout<<"\nWood cubs with 3-size bone: "<<count<<endl;
}
void count_iron_5 (cub a[m])
{
    cout<<"\n************************\n\tOutput iron / size>5\n************************"<<endl;
    int count=0;
    for(int i=0; i<m; i++)
    {
        if (strcmp(a[i].material,"iron")==0 && (a[i].size>5))
            count++;
    }
    cout<<"\nIron cubs with >5-size bone: "<<count<<endl;
}
void sort (cub a[m])
{
    cout<<"\n************************\n\tOutput sort\n************************"<<endl;
}
Кусок кода сортировки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
for(int i = 0;i < n;i++)
{
for(int j=n-1;j > i;j--)
{
if(mas[j-1].volume_OP < mas[j].volume_OP)
{
arr[j]=mas[j];
mas[j]=mas[j-1];
mas[j-1]=arr[j];
}
}
}
output(mas);
break;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 21:48     Отсортировать массив(структуры)
Посмотрите здесь:

Отсортировать элементы структуры по алфавиту. C++
C++ Отсортировать элементы масс. структуры
C++ Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать
Сформировать массив данных с помощью структуры. Отсортировать полученный список по полю «год издания» C++
Отсортировать массив по убыванию, затем добавить недостающий элемент и отсортировать массив по возрастанию C++
C++ Отсортировать массив из структур по одному из полей структуры любым способом
C++ Отсортировать структуры по зарплатам, по именам.
C++ Как отсортировать объекты из структуры?

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

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

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