Re: задано квадратну матрицю
А можеш будь-ласка зробити щоб ще головна діагональ теж нулями заповнювалась і пояснити кожен крок циклу, а то я сам довго думав і не виходило, щоб зрозуміти принцип!!!
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → задано квадратну матрицю
Для відправлення відповіді ви повинні увійти або зареєструватися
А можеш будь-ласка зробити щоб ще головна діагональ теж нулями заповнювалась і пояснити кожен крок циклу, а то я сам довго думав і не виходило, щоб зрозуміти принцип!!!
void fill_array_scheme( int** arr, size_t n ){
for ( int i = 0; i < n; ++i )
for ( int j = n-1; j >= 0; --j )
if ( j >= (n-1-i) )
arr[ i ][ j ] = 0;
}
На майбутнє: не бавтеся з беззнаковими типами на кшалт size_t (unsigned int), інакше ризикуєте отримати переповнення та тонкі граблі. Користуйте їх лише у випадках, коли інакше не можна.
Принцип роботи функції простий: ми так само йдемо по рядках, однак кожен рядок проходимо справа наліво.
Але ж тут момент: умовна точка відліку тепер - права межа, а не ліва, себто рух починаємо з позиції (n-1) - правого крайнього елемента - до позиції (0). Так само і з індексами: якщо раніше нас цікавили "ліві" позиції j, то тепер це - "праві".
Щоб заповнити й діагональ, дещо послаблюємо умову порівняння. От і вся магія.
Для відправлення відповіді ви повинні увійти або зареєструватися