Witam serdecznie,
jestem absolutnym amatorem w programowaniu, więc proszę nie odsyłać mnie na praktyki do MacDonaldsa, ponieważ pracę już mam. Tyle tytułem żartu, a teraz na poważnie. Gdy parę miesięcy temu biedziłem się nad jakimś zagadnieniem, ktoś uprzejmy podrzucił mi programik wyliczający ilość wystąpień elementów w tablicy testowej i wszystko byłoby fajnie, gdyby tych tablic nie zrobiło mi się więcej. Wklejanie za każdym razem innych danych do TestArray znudziło mi się i ambitnie napisałem coś takiego:
#include <string>
#include <cstdlib>
#include <iostream>
#include <mem.h>
#include <conio.h>
#include <algorithm>
using namespace std;
struct Combination_number
{
char name[24];
int numbers[180];
};
const Combination_number elements[] = {
{
"Combination number. 1",
{3,9,17,21,24,31,33,36,42,49,4,8,19,22,28,30,34,39,43,47,2,6,10,13,14,25,29,37,38,46,
1,6,12,15,22,27,31,32,41,42,4,7,14,17,23,30,33,36,45,48,2,9,13,18,21,26,34,39,44,49,
3,8,11,18,22,25,36,37,43,46,1,6,16,17,23,28,35,40,41,44,2,5,12,19,24,27,31,34,42,49,
3,4,12,15,21,28,32,39,47,48,6,9,16,17,29,30,31,38,41,42,7,8,11,20,26,27,34,35,45,46,
3,10,11,14,22,23,32,35,43,44,6,9,16,19,24,29,37,38,45,48,2,5,13,18,25,30,31,40,41,0,
2,5,16,19,25,30,34,39,45,48,1,9,12,13,21,24,33,36,44,49,3,8,15,20,23,26,35,40,43,46}
},
{
"Combination number. 2",
{3,9,17,21,24,31,33,36,42,49,4,8,19,22,28,30,34,39,43,47,2,6,10,13,14,25,29,37,38,46,
1,6,12,15,22,27,31,32,41,42,4,7,14,17,23,30,33,36,45,48,2,9,13,18,21,26,34,39,44,49,
3,8,11,18,22,25,36,37,43,46,1,6,16,17,23,28,35,40,41,44,2,5,12,19,24,27,31,34,42,49,
3,4,12,15,21,28,32,39,47,48,6,9,16,17,29,30,31,38,41,42,7,8,11,20,26,27,34,35,45,46,
3,10,11,14,22,23,32,35,43,44,6,9,16,19,24,29,37,38,45,48,2,5,13,18,25,30,31,40,41,0,
6,9,13,20,28,29,33,40,43,48,2,7,16,19,24,27,31,34,44,47,5,8,14,17,21,30,32,37,41,46}
},
{
"Combination number. 3",
{3,9,17,21,24,31,33,36,42,49,4,8,19,22,28,30,34,39,43,47,2,6,10,13,14,25,29,37,38,46,
1,6,12,15,22,27,31,32,41,42,4,7,14,17,23,30,33,36,45,48,2,9,13,18,21,26,34,39,44,49,
3,8,11,18,22,25,36,37,43,46,1,6,16,17,23,28,35,40,41,44,2,5,12,19,24,27,31,34,42,49,
3,4,12,15,21,28,32,39,47,48,6,9,16,17,29,30,31,38,41,42,7,8,11,20,26,27,34,35,45,46,
3,10,11,14,22,23,32,35,43,44,6,9,16,19,24,29,37,38,45,48,2,5,13,18,25,30,31,40,41,0,
4,9,14,19,22,29,35,38,46,47,5,8,13,16,21,26,33,40,41,48,6,7,15,17,28,30,32,39,42,45}
},
{
"Combination number. 4",
{3,9,17,21,24,31,33,36,42,49,4,8,19,22,28,30,34,39,43,47,2,6,10,13,14,25,29,37,38,46,
1,6,12,15,22,27,31,32,41,42,4,7,14,17,23,30,33,36,45,48,2,9,13,18,21,26,34,39,44,49,
3,8,11,18,22,25,36,37,43,46,1,6,16,17,23,28,35,40,41,44,2,5,12,19,24,27,31,34,42,49,
3,4,12,15,21,28,32,39,47,48,6,9,16,17,29,30,31,38,41,42,7,8,11,20,26,27,34,35,45,46,
3,10,11,14,22,23,32,35,43,44,6,9,16,19,24,29,37,38,45,48,2,5,13,18,25,30,31,40,41,0,
6,9,15,20,23,24,37,38,42,45,7,8,16,19,22,25,34,39,43,46,1,2,17,18,26,29,31,40,47,0}
}
};
int main(int argc, char *argv[])
{
int j;
for(j = 0; j<4; j++)
do
{
const int n = sizeof(Combination_number) / sizeof(int);
const int range = 180;
const int minval = 6;
int occurences[range];
memset(occurences,0,range*sizeof(int));
for (int i=0; i<n; ++i)
occurences [Combination_number[i]]++;//tu kompilator nie może przełknąć
for (int i=0; i<range; ++i)
if (occurences[i]>=minval)
cout<<"liczba- " << i << " wystapila " << occurences[i] << " razy\n"<< endl;
}
while(j++ < 4);
system("PAUSE");
return EXIT_SUCCESS;
}
Na oko wszystko powinno działać jak należy, ale gdzie tam?! Co było dobre dla jednej tablicy, nie wystarcza już na strukturę, a może gdzieś jakiś drobiażdżek przeoczyłem? Będę wdzięczny za podpowiedź,
Pozdrawiam