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

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

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

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

13.11.2012, 12:45. Просмотров 278. Ответов 5
Метки нет (Все метки)

Нужно отсортировать массив по убыванию bals, но даже не компилируется!
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
#include <iostream>
#include <iomanip.h>
using namespace std;
const int size=3;
const int n=3;
struct list{
     char name[50];
     int medal[20];
     char arr[100];
     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]; 
     }
     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++)
    {
        for(int j=n-1;j>1;j--)
        {
            if(a[j].bals>a[j-1].bals)
            {
               arr[1]=a[j-1];
               a[j-1]=a[j];
               a[j]=arr[1];
            }
        }
      
    }
     for(int i=0;i<n;i++)
   cout<<a[i].name<<"\t"<<a[i].s<<"\t"<<a[i].bals<<"\n";
 }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 12:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос сортировка массива (исправить код) (C++):

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

Сортировка (исправить код) - C++
Помогите с сортировкой! Нужно сортировать исходные данные по убыванию!! Простой массив сортировать могу, а тут никак не получается)...

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
13.11.2012, 13:07 #2
Попробуй теперь:
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
#include <iostream>
#include <iomanip>
using namespace std;
const int size=3;
const int n=3;
struct list{
     char name[50];
     int medal[20];
     char arr[100];
     int bals;
     int s;
};
void inp(list [size]);
void out(list [size]);
int main()
{
    list a[size];
    inp(a);
    out(a);
    system("pause");
    return 0;
}
 
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]; 
     }
     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])
{
    list arr;
    for(int i=0;i<n;i++)
    {
        for(int j=n-1;j>1;j--)
        {
            if(a[j].bals>a[j-1].bals)
            {
               arr=a[j-1];
               a[j-1]=a[j];
               a[j]=arr;
            }
        }
    }
   for(int i=0;i<n;i++)
    cout<<a[i].name<<"\t"<<a[i].s<<"\t"<<a[i].bals<<"\n";
 }
1
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
13.11.2012, 13:20  [ТС] #3
работает, но неправильно сортирует почему-то!
0
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
13.11.2012, 13:28  [ТС] #4
сортировка массива (исправить код)


а должно быть
komand1
komand2
komand3
0
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
13.11.2012, 13:29 #5
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
#include <iostream>
#include <iomanip>
using namespace std;
const int size=3;
const int n=3;
struct list{
     char name[50];
     int medal[20];
     char arr[100];
     int bals;
     int s;
};
void inp(list [size]);
void out(list [size]);
int main()
{
    list a[size];
    inp(a);
    out(a);
    system("pause");
    return 0;
}
 
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]; 
     }
     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++)
    {
        for(int j=0;j<n-1;j++)
        {
            if(a[j].bals<a[j+1].bals)
            {
                list temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
   for(int i=0;i<n;i++)
    cout<<a[i].name<<"\t"<<a[i].s<<"\t"<<a[i].bals<<"\n";
 }
1
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
13.11.2012, 13:35  [ТС] #6
Andrey.K, Спасибо, помогло!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2012, 13:35
Привет! Вот еще темы с ответами:

Исправить код сортировки массива - C++
Добрый вечер) Обращаюсь к вам за помощью. Есть программа, которая должна сортировать массив, а также выводить соответствующие данные из...

Выход за пределы массива. Исправить код - C++
Вот такой результат исполнения кода: 5 17 22 10.5 11.23 12.87 6.64 9.82 15.35 - ввел числа в массив с клавиатуры 5 5 17 17 22 22...

Исправить код для сортировки двумерного массива - C++
Здравствуйте! Укажите пожалуйста на мою ошибку. Нужно через быструю сортировку отсортировать двумерный массив, но что бы сортировались...

Реализация массива в классе (ошибка компиляции, исправить код) - C++
Здравствуйте форумчане написал я программу реализации массива в классе но не работает по неизвестным мне причинам, вот надеюсь на вашу...


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

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

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