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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывод приветствия на экран http://www.cyberforum.ru/cpp-beginners/thread412412.html
Написать программу, выполняющую вывод приветствия на экран для пользователей, прошедших проверку аутентификацию. Функцию проверки имени и пароля вынести в DLL. Использовать явное связывание.
C++ Создать растровое изображение Создать растровое изображение размером 50*50, нарисовать в его центре прямоугольник размером 10*10 и отобразить данное изображение в левой нижней части окна. http://www.cyberforum.ru/cpp-beginners/thread412406.html
C++ Как отсортирвоать контейнер, если его тип определяется по ходу выполнения программы? (динамическая идентификация типов)
собсно #include <windows.h> #include <stdio.h> #include <vector> #include <list> #include <algorithm> #include <cxxabi.h> using namespace std;
Подредактируйте программу (структуры). C++
Добрый день, уважаемые форумчане. На верное я как и многие здесь уже достали вас своими вопросами, понимаю, но все так =) если ко не сложно помогите. Итак. Мне нужно создать бинарный файл и как, я понял внести в него сведения о выпущенной продукции включают: наименование, количество, номер цеха и выполнить его обработку: для заданного цеха вывести информа-цию о выпущенной продукции в порядке...
C++ функция с именем make_mun http://www.cyberforum.ru/cpp-beginners/thread412378.html
Помогите реализовать внешнюю функцию с именем make_mun(),где mun- тип реалезуемой структуры. Вот текст задания: Поле first – целое число, левая граница диапазона, включается в диапазон; поле second – целое число, правая грани-ца диапазона, не включается в диапазон. Пара чисел представляет полуоткрытый интервал #include <iostream> #include <windows.h> using namespace std; char*...
C++ Операторы условия. Помогите добавить к этой проге. Чтобы однозначные цифры шли в первой строке, двузначные во второй, трёхзначные в третьей. #include <iostream.h> #include <math.h> #include <stdio.h> #include <conio.h> void main() { int a, i; cout << "Vvedite proizvol'noe chislo "; подробнее

Показать сообщение отдельно
22Андрей22
1 / 1 / 0
Регистрация: 14.11.2011
Сообщений: 21

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

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