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

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

Войти
Регистрация
Восстановить пароль
 
22Андрей22
1 / 1 / 0
Регистрация: 14.11.2011
Сообщений: 21
#1

Помогите доработать программу на С++,задача на тему двумерных массивов - C++

19.12.2011, 15:53. Просмотров 328. Ответов 0
Метки нет (Все метки)

Помогите доработать программу на С++,задача на тему двумерных массивов


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

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

void print(int **a, int nrow, int ncol, double *h);
void sort(int **a, int nrow, int ncol, double *h);

int main(void)
{ int nrow, ncol;
int N,K; 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(N = 0;N < nrow;N++)
a[N]= new int [ncol];

// Заполнение массива
for(N = 0;N < nrow;N++)
for(K = 0;K < ncol;K++)
f >> a[N][K];
cout << "\n";
f.close();

//суммирование баллов для каждого ученика
// (суммирование элементов строк)
double *sum = new double [nrow]; double *h = new double [nrow];double *U = new double [nrow];
for (N = 0;N < nrow;N++)
{ sum[N] = 0;
for (K = 0;K < ncol; K++){
sum[N] += a[N][K];
h[N] =sum[N]/(K+1); if (h[N]>=4)
U[N]=h[N];

};}


//вывод исходного масива
cout<<"\n Исходные баллы учеников\n";

print(a, nrow, ncol, h);
cout << "\n";

sort(a, nrow, ncol, h);

//вывод на экран упорядоченной матрицы

cout << "\n Баллы учеников";
cout << "\n упорядоченные по среднему \n";

print(a, nrow, ncol, h);
cout << "\n";
}
else cout << "File not found \n";
}

void print(int **a, int nrow, int ncol, double *h,double *U)
{ for (int N = 0;N < nrow; N++)

{ for (int K = 0;K < ncol; K++){
cout << " " << a[N][K]<< " ";
cout << "| " << U[N] << "\n"; }

}}


void sort(int **a, int nrow, int ncol, double *h)
{ double buf_h;
int nmin, buf_a;
for(int N = 0;N < nrow-1; N++)
{ nmin = N;
for(int K = N+1;K < nrow; K++)
if (h[K] < h[nmin])
nmin = K;
buf_h = h[N];
h[N] = h[nmin]; h[nmin] = buf_h;
for(int K = 0;K < ncol;K++)
{ buf_a = a[N][K];
a[N][K] = a[nmin][K];
a[nmin][K] = buf_a;
}
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2011, 15:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите доработать программу на С++,задача на тему двумерных массивов (C++):

задача на тему массиву.помогите программу написать - C++
дан массив А(11).все элементы этого массива из интервала (с,d) обнулите,найдите сумму остальных.

Какие есть виды массивов (кроме одномерных, двумерных и двумерных ступенчатых массивов)? - C++
Какие есть виды массивов (кроме одномерных, двумерных и двумерных ступенчатых массивов)? И почему такая вот запись является &quot;чуть&quot;...

Помогите пожалуйста с обработкой двумерных массивов - C++
Вычесть k-ый столбец квадратной матрицы N x N из соответствующих по строкам элементов диагонали, располагающейся ниже главной диагонали на...

C++ Задача с использованием двумерных динамических массивов. - C++
Собственно сабж. Близится время сессии, начал потихоньку делать контрольные работы. Дошёл до программирования, думал справлюсь...

Написать программу. Сортировка двумерных массивов - C++
Отсортировать строки двумерного массива в порядке возрастания максимальных элементов строк.

Написать программу обработки двумерных массивов, используя динамическое размещение данных - C++
Сформировать вектор из наименьших значений элементов столбцов и найти их среднее арифметическое помогите написать программу..

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

Составить программу на языке C++ для обработки двумерных массивов с использованием указателей - C++
Составить программу на языке C++ для обработки двумерных массивов с использованием указателей. Очень срочно. Завтра экзамен.

Составить программу на языке C++ для обработки двумерных массивов с использованием указателей - C++
Дана матрица порядка n. Найти в последнем столбце max и min. Если в матрице есть нули, то заменить их суммой max и min последнего столбца. ...

Создать программу-счётчик слов (помогите доработать код) - C++
Эта программа видит на входе &quot;Ма-ма -мыла раму. Рама-, мыла маму. Мама была рамой. А у Саши 0 - шуры муры. А у Шуры нет&quot; а на выходе должно...

Использование двумерных массивов - C++
вроде компилируется, но когда программа загружается, то она выбивает, пишет остановка #include &lt;iostream&gt; using namespace std; main...


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

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

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