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

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

Войти
Регистрация
Восстановить пароль
 
Osman
1 / 1 / 0
Регистрация: 07.10.2012
Сообщений: 16
#1

Сортировка массива - C++

25.11.2012, 11:36. Просмотров 246. Ответов 0
Метки нет (Все метки)

Оценки студентов. Записать из файла в двумерный массив информацию об оценках каждого из N студентов группы по тому или иному предмету (в первой строке – информация об оценках первого студента, во второй – второго и т. д.). Общее число предметов равно K. Сформировать список оценок студентов, которые по всем K предметам учатся на 4 и 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
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
#include <iostream>
#include <fstream>
 
using namespace std;
void print(int **a, int nrow, int ncol, long *sum,long *mus );
void sort (int **a, int nrow, int ncol, long *sum,long *mus);
 
 
int main(void)
{
    int nrow, ncol;
    int i, j;
    int **a;
    ifstream f; // объявление потока для чтения
    f.open("D:\\Student.txt"); // режим ios::in
    if (f)
    {
        cout << "Read fiel!\n";
        f >> nrow;
        f >> ncol;
             // выделение памяти под массив
        a = new int *[nrow];
        for (i=0; i < nrow; i++)
             a[i] = new int [ncol];
             // заполненине массива
        for (i=0; i < nrow; i++)
        for (j=0; j < ncol; j++)
          f >> a[i][j];
          cout << "\n";
          f.close();
          // вывод массива
          for (i=0; i<nrow; i++)
           {
              for (j=0; j<ncol; j++)
              cout << " "<< a[i][j];
              cout << "\n";
           }
 
        //  Сумма строк массива
        long *mus = new long [nrow];
         for (i = 0;i < nrow;i++)
        { mus[i] = 0;
          for (j = 0;j < ncol; j++)
         mus[i] += a[i][j];
         }
 
 
         // поиск студентов кто учится на 4  и 5
         long *sum = new long [nrow];
            for (i = 0;i < nrow;i++)
                 { sum[i] = 1;
                    for (j = 0;j < ncol; j++)
                        {  if (a[i][j]==3)
                          sum[i] = 0;
                        }
                 }
 
 
 
 
        //вывод на экран упорядоченной матрицы кто на 4 и 5
        cout << "\n Ocenki studentov, kto ychitsya na 4 i 5:\n";
        print(a, nrow, ncol, sum, mus);
        sort (a,  nrow, ncol,sum, mus);
 
 
 
     }
     else cout<< "File ot found, LOL)";
}
 
   void sort (int **a, int nrow, int ncol,  long *sum, long *mus)
      { long buf_mus;
         int nmin, buf_a;
        for(int i = 0;i < nrow-1; i++)
           { nmin = i;
             for(int j = i+1;j < nrow; j++)
                 if (mus[j] < mus[nmin])
                     nmin = j;
                     buf_mus = mus[i];
                     mus[i] = mus[nmin];
                     mus[nmin] = buf_mus;
                      for(int j = 0;j < ncol;j++)
                         { buf_a = a[i][j];
                            a[i][j] = a[nmin][j];
                            a[nmin][j] = buf_a;
                         }
         }
        }
    void print(int **a, int nrow, int ncol, long *sum, long *mus)
        { for (int i = 0;i < nrow; i++)
             if (sum[i]==1)
               { for (int j = 0;j < ncol; j++)
                 cout << " " << a[i][j]<< " ";
                 cout << "| " << mus[i] << "\n";
 
               }
               }
данные в файле
5
5
4 4 5 5 5
3 4 5 4 4
5 5 5 5 5
5 3 4 4 4
5 4 4 5 4
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2012, 11:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка массива (C++):

Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива - C++
Мне нужно отсортировать фрагмент массива, расположенный между первым и последним отрицательным элементом. Немогу понять как устоновить...

Сортировка массива: перенести положительные числа в начало, а отрицательные - в конец массива - C++
Дан вещественный массив A(N). Отсортировать его таким образом, чтобы все положительные числа находились в начале, а отрицательные - в конце...

Сортировка массива. Ошибка после ввода размерности массива - C++
подскажите почему после ввода размерности массива выдает ошибку #include&lt;iostream&gt; #include&lt;cstdlib&gt; #include&lt;conio&gt; using...

Сортировка массива структур через сортировку массива указателей - C++
Ошибка возникает в функции void sort(student **ppStud, int k, char ch). Кто видит ошибку - помогите, пожалуйста. Код программы: ...

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2012, 11:36
Привет! Вот еще темы с ответами:

Сортировка массива - C++
Дан массив, элементы которого равны либо 1 либо 2. Отсортировать таким образом, чтобы за каждой единицей следовала двойка, причём если...

Сортировка массива - C++
Помогите пожалуйста с конечным результатом #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;locale&gt; #include &lt;windows.h&gt; #include...

Сортировка массива - C++
Добрый вечер! Мне нужно отсортировать элементы массива по возрастанию. Проблема в том, что элементы состоят как из цифр, так и из...

Сортировка массива - C++
Сгенерировать и вывести на экран одномерный массив Y {yi} в диапазоне целых чисел . Сформировать массив Z из парных элементов массива Y....


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

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

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