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

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

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

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

20.12.2011, 12:44. Просмотров 282. Ответов 0
Метки нет (Все метки)

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


Написать программу, реализующую алгоритм задачи индивидуального варианта. В программе необходимо организовать работу с двумерным массивом.
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++
Помогите люди добрые:) Дана целочисленная прямоугольная матрица, определить: 1) Кол-во отрицательных эл-тов тех строк, которые содержат...

Двумерные массивы. - C++
для заданной матрицы размером 8x8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом. Как это вообще? Второй день голову...

с++ двумерные массивы - C++
с++ двумерные массивы, можете помочь написать код пожалуйста №1 Заполнить матрицу А(9,9), от левого верхнего угла по диагонали: вправо -...

Массивы (двумерные) и Строки - C++
в теории всё легко, а вот на практике не могу описать задачи((( работаю в DevCpp Массивы (двумерные) Задать символьный массив...

Практика\двумерные массивы - C++
Дана матрица A(n,n). Преобразовать матрицу по следующему правилу: строку с номером n сделать столбцом с номером n, а столбец с номером n -...

Треугольники - двумерные массивы - C++
День добрый, ребята, подскажите как на основе этого кода можно написать противоположный треугольник? То есть так где белое, что бы стало...

Циклы и двумерные массивы - C++
Решенная задача: Вы продаете книгу &quot;Язык С++ для чайников&quot;. Напишите программу, которая позволит ввести помесячные объемы продаж в...

Проги на двумерные массивы - C++
Здравствуйте Все! Если кто может, нужно решить две задачи или хотя бы подсказать принцип действия ,или часть проги.:):):) Задача№1:...

Двумерные массивы матрицы - C++
Что не так в программе помогите пожалуйста!! #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { ...

Malloc. Двумерные массивы - C++
Всем привет. Выделяем динамическую память. 1) int *M=(int*)malloc(sizeof(int)*N*N) 2) int **M=(int **)malloc(N*sizeof(int*) ...


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

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

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