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;
}