C++ Grupowanie liczb

0

Witam,
Chcę napisać program, który pogrupuje liczby ze względu na ich rząd wielkości.
Liczby z tego samego rzędu będą wypisane zgodnie z kolejnością ich wprowadzenia.
Czyli przykładowo najpierw wypisze liczby z przedziału <0,100) potem <100, 1000) itd.

Czy mógłby ktoś mi podpowiedzieć w jaki sposób mógłbym zoptymalizować działanie programu? Zdaję sobie sprawę, że ten kod jest beznadziejny
i zawiera sporo niepotrzebnego kodu - dopiero zaczynam zabawę z programowaniem.

#include <iostream>
using namespace std;
#define SIZE 100

int main()
{
	int liczba_testow;
	cout << "PODAJ LICZBE TESTOW: " << endl;
	cin >> liczba_testow;
	for (int i = 0; i < liczba_testow; i++)
	{
		unsigned long long liczba[SIZE];
		unsigned long long nowa_tablica[SIZE];
		int ilosc_liczb, index_nowej_tablicy = 0;
		cout << "PODAJ ILOSC LICZB: " << endl;
		cin >> ilosc_liczb;
		for (int j = 0; j < ilosc_liczb; j++)
		{
			cin >> liczba[j];
		}
		unsigned long long licznik = 1;

		for (index_nowej_tablicy; index_nowej_tablicy < ilosc_liczb;)
		{
			for (int j = 0; j < ilosc_liczb; j++)
			{
				if (liczba[j] >= (1 * licznik) && liczba[j] < (10 * licznik))
				{
					nowa_tablica[index_nowej_tablicy] = liczba[j];
					index_nowej_tablicy++;
				}
			}
			licznik = licznik * 10;
		}

		cout << "NOWA TABLICA: ";
		for (int j = 0; j < ilosc_liczb; j++)
		{
			cout << nowa_tablica[j] << " ";
		}
		cout << endl;
	}
	return 0;
}


0

Chyba, że nie rozumiem, ale jak Zapiszesz liczby w tablicy, to będą pogrupowane indeksami😁

2

zwyczajnie posortuj wg log10(value) + numer wprowadzenia

0
_13th_Dragon napisał(a):

zwyczajnie posortuj wg log10(value)

Dzięki, o to mi chodziło :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1