Вывести элементы массива, заданные по приложенной формуле, в виде спирали (C++ -> C#)
Формулировка задачи:
Доброго времени суток! Формучане, выручайте, помогите, пожалуйста, переписать прогу, которая будет выводить элементы массива, заданные по приложенной формуле, в виде спирали.
Массив A[2*n+1, 2*n+1], начиная с 0 в центре A[n, n].
А вот и код на C++
#include <iostream> #include <iomanip> #include <cstdlib> void z1(); void z2(); using namespace std; int main() { z1(); system("Pause"); return 0; } void z1() { int a[10][10], i, j, k(1), ii, jj, n(1), zi(1), zj(1), g(1); for(i=0;i<10;i++) for(j=0;j<10;j++) a[i][j]=0; for(i=0;i<10;i++) { for(j=0;j<10;j++) cout<<setw(3)<<a[i][j]; cout<<endl; } j=4; i=5; while(i<=10 && j<=10) { switch(k) { case(1): { zi=i; zj=j; i-=n; break; } case(2): { zi=i; zj=j; j+=n; break; } case(3): { zi=i; zj=j; i+=n+1; break; } case(4): { zi=i; zj=j; j-=n+1; } } if(k==1) while(zi>i) { a[zi][zj]=g; zi--; g++; } else if(i>10 || i<0 || j<0 || j>10) { system("pause"); break; } else if(k==2) while(zj<j) { a[zi][zj]=g; zj++; g++; } else if(k==3) while(zi<i) { a[zi][zj]=g; zi++; g++; } else if(k==4) while(zj>j) { a[zi][zj]=g; zj--; g++; } cout<<"i= "<<i<<"j= "<<j<<"k= "<<k; k++; if(k==5) { k=1; n+=2; } system("pause"); system("cls"); for(ii=0;ii<10;ii++) { for(jj=0;jj<10;jj++) cout<<setw(3)<<a[ii][jj]; cout<<endl; } } }
Решение задачи: «Вывести элементы массива, заданные по приложенной формуле, в виде спирали (C++ -> C#)»
textual
Листинг программы
using System; namespace ConsApp_Q1 { internal class Program { private static void Main(string[] args) { z1(); Console.ReadKey(); } static void z1() { int[,] a = new int[10, 10]; int i, j, k = 1; int n = 1, zi = 1, zj = 1, g = 1; for (i = 0; i < 10; i++) for (j = 0; j < 10; j++) a[i, j] = 0; for (i = 0; i < 10; i++) { for (j = 0; j < 10; j++) Console.Write("{0,3}",a[i, j]); Console.WriteLine(); } j = 4; i = 5; while (i <= 10 && j <= 10) { switch (k) { case (1): { zi = i; zj = j; i -= n; break; } case (2): { zi = i; zj = j; j += n; break; } case (3): { zi = i; zj = j; i += n + 1; break; } case (4): { zi = i; zj = j; j -= n + 1; break; } } if (k == 1) while (zi > i) { a[zi, zj] = g; zi--; g++; } else if (i > 10 || i < 0 || j < 0 || j > 10) { Console.ReadKey(); break; } else if (k == 2) while (zj < j) { a[zi,zj] = g; zj++; g++; } else if (k == 3) while (zi < i) { a[zi, zj] = g; zi++; g++; } else if (k == 4) while (zj > j) { a[zi, zj] = g; zj--; g++; } Console.Write("i={0} j={1} k={2}", i, j, k); k++; if (k == 5) { k = 1; n += 2; } Console.ReadKey(); Console.Clear(); int ii; for (ii = 0; ii < 10; ii++) { int jj; for (jj = 0; jj < 10; jj++) Console.Write("{0,3}", a[ii, jj]); Console.WriteLine(); } } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д