Почти ничем, из while легко сделать for, а из for легко сделать while.
Просто для удобства сделали так, что while выполняется, пока истинно заданное условие, которое проверяется до или после выполнения одного цикла, а for выполняется определённое в счётчике количество раз.
Если я правильно понимаю, нужно все эти значения из 3 массивов поместить в один общий и после уже считать среднее геометрическое или суммировать в конце по одному
Можно подсчитать его для каждого массива и затем найти среднее арифметическое для полученных трёх чисел.
В Си завезли классы? Давно?
К тому же Си давно устарел и актуален в нишевых формах, хватит насиловать труп.
И да, переходите даже не на Кресты, а на C# - небезопасные языки с няшными утечками тоже не нужны.