Консультация № 66798
13.12.2006, 11:57
0.00 руб.
0 3 1
Здраствуйте, уменя вопрос.
Дан двумерный массив (данные могут быть любые) необходимо вывести его по спирали.
За любой ответ заранее длагодарен.

Обсуждение

Неизвестный
13.12.2006, 12:39
общий
Куда вывести? В какой среде?
Неизвестный
13.12.2006, 19:38
общий
Массив на вывести на экран. Язык или среда в которой может быть реализована программа не имеет особого значения.
Неизвестный
14.12.2006, 04:04
общий
это ответ
Здравствуйте, AlexUzl!
Вот версия Win32 Console


Приложение:
#include <stdio.h>#include <time.h>#include <stdlib.h>#include <conio.h>#include <windows.h>void set_cursor(int x, int y) { COORD coord; coord.X = x; coord.Y = y; ::SetConsoleCursorPosition(::GetStdHandle(STD_OUTPUT_HANDLE), coord);}int main(int argc, char* argv[]) { const int n = 15; const int m = 20; const int sleep_time = 50; const int cell_size = 3; int array[n][m]; int i, j; srand((unsigned)time(NULL)); for(i=0; i<n; i++) for(j=0; j<m; j++) array[i][j] = rand()%100; int min = (m < n) ? (m - (int)(m/2)) : (n - (int)(n/2)); for(i=0; i<min; i++) { for(j=i; j<m-i-1; j++) { set_cursor(j*cell_size, i); printf("%d", array[i][j]); ::Sleep(sleep_time); } for(j=i; j<n-i-1; j++) { set_cursor((m-i-1)*cell_size, j); printf("%d", array[j][m-i-1]); ::Sleep(sleep_time); } for(j=m-i-1; j>i; j--) { set_cursor(j*cell_size, n-i-1); printf("%d", array[n-i-1][j]); ::Sleep(sleep_time); } for(j=n-i-1; j>i; j--) { set_cursor(i*cell_size, j); printf("%d", array[j][i]); ::Sleep(sleep_time); } } return 0;}
Форма ответа