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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить номер пары цифр, в которую входит k-я цифра http://www.cyberforum.ru/cpp-beginners/thread708272.html
даны целое число k (1<=k<=180) и последователност цифр 101112...9899, в которой выписаны подряд все двузначные числа. Определить: - номер пары цифр, в которую входит k-я цифра
C++ сделать через указатели подскажите как переделать код #include<math.h> #include<stdio.h> #include <conio.h> void main () {int x,a; float y; FILE*vivod;vivod=fopen("C:\Documents and Settings\Лена\Рабочий стол\Учёба\2 курс\Лаботаторные с++\мои работы\1.txt","w"); http://www.cyberforum.ru/cpp-beginners/thread708267.html
C++ Вычислить сумму. Проверить по контрольному значению
Вычислить сумму. Значение проверить по контрольному. \sum_{m=1}^{n}\frac{{(m-1)!}^{2}}{(2m)!} Контрольное значение: \frac{{\pi }^{2}}{18}
C++ Цикл while: Определить, сколько элементов этой последовательности больше предыдущего элемента
1)Последовательность состоит из натуральных чисел и завершается числом 0. Определите, сколько элементов этой последовательности больше предыдущего элемента. Числа, следующие за числом 0, считывать не нужно. Ввод Вывод 1 7 9 0 2
C++ Сортировка двумерного массива по сумме элементов строк http://www.cyberforum.ru/cpp-beginners/thread708227.html
Добрый день. Делаю лабораторную, задача: В двумерном массиве хранятся данные об оценках N студентов по М предметам. Номер строки соответствует номеру студента в группе, номер столбца – предмету. Определить K самых успешных студентов. Сделал первую часть задания, но не могу понять, как отсортировать строки массива по найденной сумме, причем чтобы отображалось количество строк равное k. ...
C++ написать комментарии к программе код полностью верный и рабочий. но проблемы в том что нужно написать комментарии.... помогите пожалуйста#include <iostream> #include <stdlib.h> #include <math.h> using namespace std; int main() { int a,b,i,o; i=1; cout<<"Введите 1числа"<<endl; cin>>a; подробнее

Показать сообщение отдельно
Osman
1 / 1 / 0
Регистрация: 07.10.2012
Сообщений: 16

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

25.11.2012, 11:36. Просмотров 225. Ответов 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
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru