Как считать сортировку двумерного массива

Привет, у меня есть проблема с моим кодом, я пытаюсь сортировать массив путем подсчета сортировки (это должна быть стабильная сортировка), но мой код не работает. Я пытаюсь реализовать подсчет-сортировку с некоторого wbesite, но это было в c #, и я не уверен, что все сделано правильно. Можете ли вы сказать мне, что с ним не так?

#include <stdio.h>
#include <iostream>

using namespace std;void sort_with_show(int **a, int rozmiar, int polecenie)
{
int y, d;
for (int i = 0; i< rozmiar - 1; i++)
{
for (int j = 0; j < rozmiar - 1 - i; j++)
{
if (a[j + 1][0] < a[j][0])
{
y = a[j][0];
a[j][0] = a[j + 1][0];
a[j + 1][0] = y;
}
}
}

for (int i = 0; i < rozmiar; i++)
{
//cout << tablica[i].x << " " << tablica[i].y << "\n";
if (polecenie == 0)
{
cout << a[i][0] << '\n';
}
else if (polecenie == 1)
{
cout << a[i][0] << "," << a[i][1] << "\n";
}
}
}

int main()
{int rozmiar = 0;
int polecenie = 0;

char t[20] = { '\0' };
char *p, *q;

int liczba = 0;
int calaLiczba = 0;

bool isY = false;
cin >> rozmiar;

int ** a  = new int *[rozmiar];
for (int i = 0; i < rozmiar; i++)
a[i] = new int[2];

cin.ignore();

int i = 0;
while(i < rozmiar)
{
fgets(t, sizeof t, stdin);

for (p = t, q = t + sizeof t; p < q; p++)
{

if (*p >= 48 && *p <= 57)
{
liczba = *p - 48;
calaLiczba = calaLiczba * 10 + liczba;
}

if (*p == ' ')
{
a[i][0] = calaLiczba;
isY = true;
calaLiczba = 0;
liczba = 0;
}

if (*p == '\n')
{
a[i][1] = calaLiczba;
isY = false;
}

}

for (int j = 0; j < 20; j++)
t[j] = '\0';

liczba = 0;
calaLiczba = 0;
isY = false;
i++;
}

cin >> polecenie;
cin.ignore();

sort_with_show(a, rozmiar, polecenie);
return 0;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]