Shadow_ZD
|
|
1 | |
Заполнение массива "спиралью"24.09.2006, 12:56. Показов 5996. Ответов 3
Метки нет (Все метки)
Дана матрица m на n. m, n вводим с клавиатуры. Нужно ее заполнить двигаясь от центра к углам. Тоесть это примерно так:
Для квадратной матрицы k k k k k k k k 2 2 2 2 2 k k 2 1 1 1 2 k k 2 1 0 1 2 k k 2 1 1 1 2 k k 2 2 2 2 2 k k k k k k k k Первым заполняется центр(0), потом элементы "1", элементы "2" и тд... x. y - координаты центра. proh - число проходов Код
for(i = x - 1, j = y - 1; j < proh1; j++) { fflush(stdin); printf("\n Vvod a[%d][%d]>>", i, j); scanf("%d", &a[i][j]); } //printf("\n i = %d; j = %d", i, j); for(j = j - 1, i = i + 1; i <= proh2; i++) { fflush(stdin); printf("\n Vvod a[%d][%d]>>", i, j); scanf("%d", &a[i][j]); } //printf("\n savei = %d; i = %d; j = %d",savei, i, j); for(j = i-2, i = i - 1; j >=proh3 - pro1; j--) { fflush(stdin); printf("\n Vvod a[%d][%d]>>", i, j); scanf("%d", &a[i][j]); } //printf("\n i = %d; j = %d", i, j); for(i = i - 1, j = i - 1; i > proh4; i--) { fflush(stdin); printf("\n Vvod a[%d][%d]>>", i, j); scanf("%d", &a[i][j]); //break; } //printf("\n i = %d; j = %d", i, j); Кто может помогиту пожалуйста. Может у меня в алгоратме проблема... Не забываем про тэг [code] |
24.09.2006, 12:56 | |
Ответы с готовыми решениями:
3
Заполнение массива спиралью Заполнение массива 5*5 спиралью Заполнение двухмерного массива спиралью заполнение двумерного массива спиралью Заполнение массива двойной спиралью |
Администратор
83618 / 52196 / 244
Регистрация: 10.04.2006
Сообщений: 13,426
|
|
24.09.2006, 14:38 | 2 |
Попробуй так:
Код
#include <stdio.h> #include <conio.h> const n = 10; template <typename Type> void Spiral(Type a[n][n], const int n); void main(void) { int a[n][n]; int i,j; // Process Spiral<int>(a,n); printf("\n"); // Output for (i=0; i<n; i++) { for (j=0; j<n; j++) { printf("%4d",a[i][j]); } printf("\n"); } getch(); } template <typename Type> void Spiral(Type a[n][n], const int n) { int i,j; int k=1; for (j=0; j<(n/2); j++) { //top for (i=j; i<=n-j-2; i++) { a[j][i] = k; k++; } //right for (i=j; i<=n-j-2; i++) { a[i][n-j-1] = k; k++; } //down for (i=n-j-1; i>=j+1; i--) { a[n-j-1][i] = k; k++; } //left for (i=n-j-1; i>=j+1; i--) { a[i][j]=k; k++; } } if ((n%2) == 1) a[n/2][n/2]=k; return; }
0
|
Bloody angel
|
|
18.10.2007, 20:57 | 3 |
а вы немогли б написать не в коде а програме...
|
0 / 0 / 0
Регистрация: 23.06.2017
Сообщений: 1
|
|
04.11.2007, 14:07 | 4 |
mne bi tozhe eto nada bilo : eightstudio@gmail.com
0
|
04.11.2007, 14:07 | |
04.11.2007, 14:07 | |
Помогаю со студенческими работами здесь
4
Заполнение двухмерного массива спиралью Заполнение двумерного массива(матрицы) спиралью Заполнение спиралью Заполнение спиралью Заполнение матрицы спиралью заполнение матрицы спиралью Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |