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

С++ двумерные массивы - C++

Восстановить пароль Регистрация
 
22Андрей22
1 / 1 / 0
Регистрация: 14.11.2011
Сообщений: 21
20.12.2011, 12:44     С++ двумерные массивы #1
Помогите доработать программу на С++,задача на тему двумерных массивов


Написать программу, реализующую алгоритм задачи индивидуального варианта. В программе необходимо организовать работу с двумерным массивом.
1. Оценки студентов. Записать из файла в двумерный массив информацию об оценках каждого из N студентов группы по тому или иному предмету (в первой строке – информация об оценках первого студента, во второй – второго и т. д.). Общее число предметов равно K. Сформировать список оценок студентов, которые по всем K предметам учатся на 4 и 5. Упорядочить этот список по убыванию среднего балла.
Вот что у меня получилось, не могу понять куда вставить условие, которое будет отсеивать троешников и двоешников



#include <iostream>
#include <fstream>
using namespace std;

void print(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("D:\\abc5.txt"); // режим ios::in
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";
print(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 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;
}
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2011, 12:44     С++ двумерные массивы
Посмотрите здесь:

Двумерные массивы C++
C++ двумерные массивы
Двумерные массивы C++
Двумерные массивы C++
C++ двумерные массивы
C++ Двумерные массивы
двумерные массивы C++
C++ Двумерные массивы

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

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

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