G
Guest
я не могу понять почему первый элемент из начального массива после сортировки зануляется . Я знаю что ошибка где-то в сортировке, а точнее в индексах. А где точнее найти не могу. Помогите пожалуйста.
#include<iostream>
#include<time.h>
using namespace std;
const int n_max=100;
const int m_max=255;
int a[n_max], b[n_max], c[ m_max], n, j, i;
void main()
{
setlocale(LC_ALL, ".1251");
cout<<"Введите размерность массива\n";
cin>>n;
if(n>n_max)
{
cout<<"Введеное значение превышает допустимое\n";
}
else
{
srand(time(0));
for (i=0; i<n;i++)
a=rand()%10;// заполняем массив случайными числами
for (i=0; i<n; i++)
cout<<a<<" ";
cout<<endl;
/*далее идет сортировка подсчетом*/
for(i=0; i<m_max; i++) c=0; /*создаем новый массив и зануляем его элементы*/
for(i=1; i<n; i++) c[a]++; /*к элементам массива с с индексами равными элементам массива а прибавляем 1*/
for(i=1; i<m_max; i++) c+=c[i-1];/*добовляем к каждому элементу массива с сумму предшествующих элементов */
for(i=n; i>=1; i--) /*избегаем возможности записи двух одинаковых элементов в одну ячейку*/
{
b[c[a]]=a;
c[a]=c[a]-1;
}
for(c[a]=1; c[a]<=n; c[a]++) cout<<b[c[a]]<<" ";
cout<<endl;
}
}.
#include<iostream>
#include<time.h>
using namespace std;
const int n_max=100;
const int m_max=255;
int a[n_max], b[n_max], c[ m_max], n, j, i;
void main()
{
setlocale(LC_ALL, ".1251");
cout<<"Введите размерность массива\n";
cin>>n;
if(n>n_max)
{
cout<<"Введеное значение превышает допустимое\n";
}
else
{
srand(time(0));
for (i=0; i<n;i++)
a=rand()%10;// заполняем массив случайными числами
for (i=0; i<n; i++)
cout<<a<<" ";
cout<<endl;
/*далее идет сортировка подсчетом*/
for(i=0; i<m_max; i++) c=0; /*создаем новый массив и зануляем его элементы*/
for(i=1; i<n; i++) c[a]++; /*к элементам массива с с индексами равными элементам массива а прибавляем 1*/
for(i=1; i<m_max; i++) c+=c[i-1];/*добовляем к каждому элементу массива с сумму предшествующих элементов */
for(i=n; i>=1; i--) /*избегаем возможности записи двух одинаковых элементов в одну ячейку*/
{
b[c[a]]=a;
c[a]=c[a]-1;
}
for(c[a]=1; c[a]<=n; c[a]++) cout<<b[c[a]]<<" ";
cout<<endl;
}
}.