Program C++ : Membuat Spiral Matrix

kemaren ada yang reques program mebuat spiral matrix yang outputnya :
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

ga sengaja iseng-iseng googling, eh nemu syntax coding yang mirip. Tapi belum nemu, bagaimana cara menginputkan dari user. Kalau ada yang bisa, share di sini yak.

Untuk sementara saya share coding yang sudah di tentukan oleh program, kalau inputan yang di berikan adalah 5.
#include <iostream.h>
#include <conio.h>
void main()
{
int d[5][5]; //angka 5 bisa di ganti
int start = 1;
int count = start;

for (int i=0; i<5; i++) {

// pengaturan bagian atas
for (int j=i; j<5-i; j++)
d[i][j] = count++;
count--;

// pengaturan bagian kanan
for (int j=i; j<5-i; j++)
d[j][5-i-1] = count++;
count--;

// pengaturan bagian bawah
for (int j=5-i-1; j>=i; j--)
d[5-i-1][j] = count++;
count--;

// pengaturan bagian kiri
for (int j=5-i-1; j>i; j--)
d[j][i] = count++;

if (count > 5*5+start)
break;
}

for (int i=0; i<5; i++) {
for (int j=0; j<5; j++) {
cout << d[i][j] << " ";
}
cout << endl;
}

getch();
}


Refrensi:
http://www.cplusplus.com/forum/general/4868/

Labels: