G
guffigubber
в общем, суть проблемы. Я новичок в C++.
я создаю динамический массив и заполняю его. затем мне его нужно отсортировать методом подсчета. завис на внесении значения счетчика во вспомогательный массив. объясните что и как делать? как мне заполнить второй массив и вновь составить уже отсортированный первый?
я создаю динамический массив и заполняю его. затем мне его нужно отсортировать методом подсчета. завис на внесении значения счетчика во вспомогательный массив. объясните что и как делать? как мне заполнить второй массив и вновь составить уже отсортированный первый?
Код:
// КЭП.cpp: определяет точку входа для консольного приложения.
//
/*Создать массив, заполнить его. Отсортировать его методом подсчета*/
#include "stdafx.h"
#include <stdlib.h>
#include <cstdlib>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int n;
cout << "VVedite razmernost massiva: ";
cin >> n;
const int SIZE = n;
int *mas = 0;
try {
mas = new int [SIZE];
}
catch (bad_alloc err){
cout << "Error" << endl;
exit(1);
}
cout << "Vvedite elementy massiva: " << endl;
for (int i=0; i<SIZE; i++){
cin >> mas[i];
}
cout << "Elementy ishodnogo massiva: ";
for (int i=0; i<SIZE;i++){
cout << mas[i] << " ";
}
/*Сортировка подсчетом - Начало*/
int max = mas[0];
for (int i=0; i<SIZE;i++){
if (max < mas[i])
max = mas[i];
}
cout << endl << "Max element: " << max;
const int SIZEN = max;
int *masnew = 0;
try {
masnew = new int [SIZEN];
}
catch (bad_alloc err){
cout << "Error" << endl;
exit(1);
}
/*ТУт я и завис*/
for (int i=0;i<SIZE;i++){
n = mas[i];
int k = 0;
for (int j=0;j<SIZE;j++){
if (mas[i]==n)
k++;
}
masnew[]=k; //занесение значение счетчика во вспомогательный массив
}
cout << endl;
/*Сортировка подсчетом - Конец*/
cout << endl;
delete [] mas;
delete [] masnew;
mas = 0;
masnew = 0;
return 0;
}