i want to separate the skills into groups, the main groups(6) that later divided into sub groups(3) which divided into (20) different type skills which each one of then divided into (10) level skill who has (30) levels to each one of them
so anyways, to use that many arrays is ok for that purpose?

It looks to me that what you actually have are single dimension arrays, just 5 of them representing 5 categories. Using a struct or class, you can dynamically allocate these arrays to the size required.

You may also investigate vector - a dynamically extensible array (not a great description).

You might also consider a map or a list.

There is no doubt you will need to consider other means. The implication of that volume of entries, unless you utilize all or most of them in each occasion, is of such waste as to be - well - a bad idea.

Look for a tutorial on the STL - it might take you no more than a few hours to grasp vector, perhaps as much to understand list, but the time you're going to spend dealing with the approach you're considering will take longer because of the problems you'll encounter which are not yet in your focus. Still, it will be a learning experience for you as to exactly why it's a bad idea, and many of us found our own path by pursuing clearly ridiculous ideas directly into a wall.