The dimension 1 is most peculiar; you also have one too many levels of braces:
double array[5][4][1]=
{
// { These braces mean what follows is meant to initialize array[0], but
// there are 5 initializers for the 4 elements in array[0], and there
// are 4 initializers for each of the 'size 1' sub-arrays which is why
// the compiler complains about too many initializers for array[0][0][0], etc.
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16},
{17,18,19,20}
// }
};
This would at least compile. The fully braced version would include a pair of braces around each number:
double array[5][4][1]=
{
{ { 1 }, { 2 }, { 3 }, { 4 }, },
{ { 5 }, { 6 }, { 7 }, { 8 }, },
{ { 9 }, { 10 }, { 11 }, { 12 }, },
{ { 13 }, { 14 }, { 15 }, { 16 }, },
{ { 17 }, { 18 }, { 19 }, { 20 }, },
};
That's 5 lines, with 4 sub-arrays on each line, and each sub-array contains a single number.