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

Записать из файла в двумерный массив информацию об оценках каждого из N студентов группы по заданному предмету - C++

Восстановить пароль Регистрация
 
nnina
 Аватар для nnina
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 69
29.02.2012, 10:35     Записать из файла в двумерный массив информацию об оценках каждого из N студентов группы по заданному предмету #1
Помогите, пожалуйста, найти ошибки.

Нужно записать из файла в двумерный массив информацию об оценках каждого из 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
#include <iostream>
#include <fstream>
using namespace std; 
 
void print(int **a, int nrow, int ncol, long *sum);
void print2(int **a, int nrow, int ncol, long *sum);
void sort(int **a, int nrow, int ncol, long *sum);
 
int main(void)
{   int nrow, ncol;
    int i,j; int **a;
    ifstream f; 
    f.open("abc5.txt"); 
    if (f) 
      { cout << "Read file ! \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();
 
 
       long *sum = new long [nrow];long *h=new long[nrow];
       for (i = 0;i < nrow;i++)
        { sum[i] = 0;
          for (j = 0;j < ncol; j++)
            {
               sum[i] += a[i][j];
                h[i] =sum[i]/ncol;
            }
        }
 
 
       cout<<"\n Исходные баллы учеников\n";
       print(a, nrow, ncol, h); 
       cout << "\n";
 
        sort(a, nrow, ncol, h);
 
 
       cout << "\n Баллы учеников,";
       cout << "\n упорядоченные по cр. баллу\n";
 
       print2(a, nrow, ncol, h);
       cout << "\n";
     } 
       else cout << "File not found \n";
        
}
 
void print(int **a, int nrow, int ncol, long *h)
{ for (int i = 0;i < nrow; i++)
      { for (int j = 0;j < ncol; j++)
             cout << " " << a[i][j]<< " ";
             cout << "| " << h[i] << "\n"; 
      }
}
void print2(int **a, int nrow, int ncol, long *h)
{ for (int i = 0;i < nrow; i++)
      { for (int j = 0;j < ncol; j++)
            
            if (a[i][j] >=4)
              cout << " " << a[i][j]<< " ";
              cout << "\n";
            
      }
}
 
void sort(int **a, int nrow, int ncol, long *h)
{ long buf_h;
   int nmin, buf_a;
   for(int i = 0;i < nrow-1; i++)
    { nmin = i;
      for(int j = i+1;j < nrow; j++)
         if (h[j] < h[nmin]) 
             nmin = j;
      buf_h = h[i];
      h[i] = h[nmin]; h[nmin] = buf_h;
      for(int j = 0;j < ncol;j++)
       { buf_a = a[i][j];
         a[i][j] = a[nmin][j];
         a[nmin][j] = buf_a;
      system ("pause");
        
        }
      } 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.02.2012, 10:35     Записать из файла в двумерный массив информацию об оценках каждого из N студентов группы по заданному предмету
Посмотрите здесь:

Одномерный массив вещественных чисел R75 содержит данные о росте группы студентов. Массив заполнить значениями путем ввода с клавиатуры. Вычислить с C++
Ввести из файла информацию о K студентах группы C++
Записать информацию из файла в динамический массив C++
C++ Как записать данные из файла в двумерный массив?
C++ Обработать информацию об оценках студентов
Записать текст из файла в двумерный массив C++
Составить программу, которая выводит фамилии студентов и оценки по заданному предмету C++
C++ Вывести из файла фамилии студентов и оценки по заданному предмету

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 04:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru