Untitled
unknown
plain_text
4 years ago
2.0 kB
10
Indexable
#include <iostream>
#include <cmath>
using namespace std;
void Beolvas(int &n)
{
cout << "n = ";
cin >> n;
}
void spiralSorrend(const int *matrix, int n, int *&spiral)
{
int k = 0;
int hossz = sqrt(n);
int index = sqrt(n) - 1;
while(hossz > 0)
{
for(int i = 1; i < hossz; i++)
{
spiral[k] = matrix[index];
k++;
index--;
}
for(int i = 1; i < hossz; i++)
{
spiral[k] = matrix[index];
k++;
index += sqrt(n);
}
for(int i = 1; i < hossz; i++)
{
spiral[k] = matrix[index];
k++;
index++;
}
for(int i = 1; i < hossz; i++)
{
spiral[k] = matrix[index];
k++;
index -= sqrt(n);
}
if(hossz == 1)
{
spiral[k] = matrix[index];
}
index += sqrt(n) - 1;
hossz -= 2;
}
}
void Kiir_Matrix(int n, const int *matrix)
{
cout << "A matrix:" << endl;
int gyok = sqrt(n);
for(int i = 0; i < n; i++)
{
cout << matrix[i] << " ";
if(n % gyok == 0)
{
cout << endl;
}
}
}
void Kiir_Spiral(int n, int *a)
{
for(int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
}
int main()
{
int n;
Beolvas(n);
const int *matrix = new int[n]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 };
//const int matrix[16] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
//const int matrix[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//const int matrix[4] = { 1, 2, 3, 4 };
//const int matrix[1] = { 1 };
Kiir_Matrix(n, matrix);
int *spiral = new int[n];
spiralSorrend(matrix, n, spiral);
Kiir_Spiral(n, spiral);
delete[] matrix;
delete[] spiral;
return 0;
}Editor is loading...