Это условное
if (&a[7][0] == &a[0][0] || &a[5][1])
означает
if ( (&a[7][0] == &a[0][0]) || (&a[5][1] != 0) )
И во всех случаях вы никогда не найдете адрес a[5][1]
равным нулю.Таким образом, ваши условия всегда выполняются.
Возможно, вы имели в виду это условие:
if (&a[7][0] == &a[0][0] || &a[7][0] == &a[5][1])