Като изключим алгоритъма,
кодът ти е идеален учебен пример за работа с динамична памет,
динамични масиви и самото заделяне и освобождаване на паметта...
Това е супер в случай, че искаш да работиш с масив, точно толкова голям, колкото е необходимо.
Т.е. размерността му се определя след като потребителят е въвел вече размера...
Пиша това, за да може на читателя да стане ясно (след като на мен вече ми стана) каква е разликата между статично и динамично определяне на размер... В новите езици този проблем не съществува, а в старите има малко повече писане и знания за да стане възможно това...
Потребителя въвежда размера и след това се определя размерността...
Колко хубаво би било, ако можеше този код да е истина:
/като за нашия случай/
Код:
main()
{unsigned N=100;
unsigned a[N][N];
...................
т.е. да се обяви размерността на масива с променлива... което би довело и до възможността тази променлива да получи стойност от потребителя...
Както е в твоят случай... Всичкото писане докато вече може да работиш с масива по стандартен начин е за да стане той точно толкова голям, колкото го иска потребителя...
И понеже на тази задача алгоритъма е по-важен от тези неща - смятам, че ако задам
Код:
unsigned a[50][50];
предварително, това едва ли би било огромна загуба на памет в случаите, когато N е доста малко... Вярно е, че това все пак е ограничаващо, но с учебна цел пък и поради екранни ограничения...
Ако вместо
Код:
%d\t
използваш
Код:
%4d
примерно, ще имаш и дясно подравняване на числата за по-красиво и по-пестеливо...
Но всичко това са подробности... Изключително съм горд на единствения си for...
Все пак близо месец, откакто Чефо дойде и ми "подхвърли" условието... И то зрееше в главата ми...
В интерес на истината, в началото и на мен ми мина вариант - отвън - навътре, който ми се стори по-лесен за осъществяване... Доста късно, след като ми се стори неефективно се разделих с този вариант...
Но най-добре ще е да се види кода - да се обясни и така...
Но нека да е поетапно, защото най-голям кеф ми е, когато макар и много бавно с ученици се придвижаме към решението. Така си мисля, че се научаваме на алгоритмично мислене...
Много ми е интересно - ти къде и как се научи на това... Сподели, ако може... Благодаря!