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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
#1

Сортировка (исправить код) - C++

09.11.2012, 20:04. Просмотров 991. Ответов 22
Метки нет (Все метки)

Помогите с сортировкой! Нужно сортировать исходные данные по убыванию!! Простой массив сортировать могу, а тут никак не получается) Сортировать по значению k
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
#include <iostream>
#include <iomanip.h>
using namespace std;
const int size=3;
const int n=3;
struct list
{
       char name[50];
       int bal[10];
       };
void inp(list [size]);
void out2(list [size]);
int main()
{
    list a[size];
    inp(a);
    out2(a);
 system("pause");
}
 
void inp(list a[size])  
{
     for(int i=0;i<size;i++){
     cin>>a[i].name;
     for(int j=0;j<n;j++)
     cin>>a[i].bal[j];
}
}
 
void out2(list a[size])
{
     cout<<"----------------------------------------------------------\n";
     int k=0;
     for(int i=0;i<size;i++){
     float s=0;
     for(int j=0;j<n;j++)
     {
     if(j==0) k+=a[i].bal[j]*5; 
     if(j==1) k+=a[i].bal[j]*3;
     if(j==2) k+=a[i].bal[j]*2;
     s+=a[i].bal[j]; 
     }
     cout<<"komanda\t"<<a[i].name<<"\tkilkist medaliv  "<<s<<"  suma baliv  "<<k<<"\n";
     k=0;
     }
     cout<<"----------------------------------------------------------\n";
 }
Добавлено через 32 минуты
Что никто не может помочь?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2012, 20:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка (исправить код) (C++):

Сортировка (исправить код) - C++
Нужно упорядочить записи по алфавиту, но у меня только меняет местами name! Помогите исправить код! #include &lt;iostream&gt; #include...

сортировка массива (исправить код) - C++
Нужно отсортировать массив по убыванию bals, но даже не компилируется! #include &lt;iostream&gt; #include &lt;iomanip.h&gt; using namespace...

Пузырьковая сортировка - исправить код - C++
У меня есть массив unsigned char *buffer = new unsigned char. И мне нужно реализовать пузырьковую сортировку (сравниваются значения...

Сортировка по алфавиту (исправить код) - C++
Помогите отсортировать структуру по алфавиту (сортировка по tabl.name)! У меня ошибку выдает (( #include &lt;iostream&gt; #include &lt;string.h&gt;...

Сортировка пузырьком. Исправить код - C++
Подскажите пжл. в чем ошибка, что не так написано, не хочет сортировать(( числа рандомно присваивает и на этом собственно все(( ...

Отсортировать столбцы в массиве по уменьшению сумм четных чисел. Сортировка выбором. Исправить код - C++
Задача: Задать двумерный массив целых чисел m=5, n=6. Отсортировать столбцы в массиве по упаданию сум парных чисел. Сортировка выбором....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
iama
10.11.2012, 10:48     Сортировка (исправить код)
  #16

Не по теме:

Кто-то про std::sort слышал вообще?

0
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
10.11.2012, 22:58  [ТС] #17
Помогите мне с этой задачей, уже пару день думаю как это правильно реализовать! Нужно отсортировать несколько массивов! У меня bals и s хорошо сортирует, а вот name почему-то только первую букву!
Пожалуйста исправьте мой код, очень нужно! Всем спасибо!)
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
#include <iostream>
#include <iomanip.h>
using namespace std;
const int size=3;
const int n=3;
struct list{
     char name[50];
     int medal[20];
     int bals;
     int s;
};
void inp(list [size]);
void out(list [size]);
int main()
{
    list a[size];
    inp(a);
    out(a);
 system("pause");
}
 
void inp(list a[size]){
     
   for(int i=0;i<size;i++){
        cin>>a[i].name; 
        for(int j=0;j<n;j++)
           cin>>a[i].medal[j]; 
     }
     cout<<endl;
     for(int i=0;i<size;i++){
          a[i].bals=a[i].s=0;
          for(int j=0;j<n;j++){
               if(j==0) a[i].bals+=a[i].medal[j]*5;    
               if(j==1) a[i].bals+=a[i].medal[j]*3;   
               if(j==2) a[i].bals+=a[i].medal[j]*2;  
               a[i].s+=a[i].medal[j];  
                           
          }
         
         // cout<<a[i].name<<"\t"<<a[i].s<<"\t"<<a[i].bals<<"\n";
          
      }
     
}
void out(list a[size])
{
     for(int i=0;i<n;i++)
    {
        int min=a[i].bals;
        int nmin=i;
        int min1=a[i].s;
        int nmin1=i;
        char min2=a[i].name[i];
        char nmin2=i;
        for(int j=i;j<n;j++)
        {
            if(min>a[j].bals)
            {
                min=a[j].bals;
                nmin=j;
                min1=a[j].s;
                nmin1=j;
                min2=a[j].name[i];
                nmin2=j;
            }
        }
      a[nmin].bals=a[i].bals;
      a[i].bals=min;
      
      a[nmin1].s=a[i].s;
      a[i].s=min1;
      
      a[nmin2].name[i]=a[i].name[i];
      a[i].name[i]=min2;
      
      
    }
     for(int i=0;i<n;i++)
     cout<<a[i].name<<"\t"<<a[i].s<<"\t"<<a[i].bals<<"\n";
   
 }
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
10.11.2012, 23:07 #18
Ошибка в том, что ты сортируешь строки как числа.
0
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
10.11.2012, 23:14  [ТС] #19
David Sylva, А как их можно по другому сортировать?
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
10.11.2012, 23:14 #20
Вот тебе пример сортировки строк
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream> 
 
int main() 
{ 
    char str[3][10] = {"Barca", "Real", "Arsenal"} ; 
    char temp[10];
    for ( int i = 0; i < 3; i++)   
        for ( int j = 0; j < 3; j++) 
        if(strcmp(str[i], str[j]) < 0) 
        { 
            strcpy(temp, str[i]); 
            strcpy(str[i], str[j]); 
            strcpy(str[j], temp); 
        } 
 
    for ( int i = 0; i < 3; i++) 
        std::cout << str[i] << " "; 
    std::cout << std::endl;
}
1
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
10.11.2012, 23:22  [ТС] #21
но мне нужно чтобы было все пропорционально, например:
входные данные:
komand1
5
5
5
komand2
3
3
3
komand3
4
4
4
исходные данные:

komand1 15 50
komand3 12 40
komand2 9 30

Чтобы делало ориентацию на количество баллов, и по ним рассортировать
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
10.11.2012, 23:25 #22
Ну и делай как тебе надо, я тебе привёл пример как сортируют строки в принципе.
0
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
10.11.2012, 23:30  [ТС] #23
вы не могли хотя бы прикинуть как это бы в моем коде будет выглядеть?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2012, 23:30
Привет! Вот еще темы с ответами:

Исправить ошибки в программе. Сортировка по убыванию - C++
Требуется сортировку одномерного массива.Элемент начало сортировки представим в виде 3^n.Элементы сортировки отрицательные...

исправить код - C++
создать класс студент, сделать поис по оценке ругается на перем. a в мэйне #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Исправить код - C++
В общем тема такая. Есть код программы на c++ который выполняет следующие функции: создает линейный односвязный список,из списка удаляет...

Исправить код - C++
Форумчане,знатоки плюсов,очень прошу помочь испраивть код.Сам только начинаю разбираться,поэтому нужна помошь. Часть ошибок...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.11.2012, 23:30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru