25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
1

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

13.11.2012, 12:45. Показов 537. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2012, 12:45
Ответы с готовыми решениями:

Сортировка (исправить код)
Нужно упорядочить записи по алфавиту, но у меня только меняет местами name! Помогите исправить код!...

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

Сортировка по алфавиту (исправить код)
Помогите отсортировать структуру по алфавиту (сортировка по tabl.name)! У меня ошибку выдает ((...

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

5
348 / 269 / 128
Регистрация: 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
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
13.11.2012, 13:20  [ТС] 3
работает, но неправильно сортирует почему-то!
0
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
13.11.2012, 13:28  [ТС] 4
сортировка массива (исправить код)



а должно быть
komand1
komand2
komand3
0
348 / 269 / 128
Регистрация: 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
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
13.11.2012, 13:35  [ТС] 6
Andrey.K, Спасибо, помогло!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2012, 13:35
Помогаю со студенческими работами здесь

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

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru