#include <iostream>
using namespace std;
void asdf(int L, int R)
{
int arr[100][100];
int num=1;
int i,j;
int bl = true;
for(i=0; bl=true&&(i<(L/2) + 1) ; i++)
{
for(j=i;bl=true&&(j<L-i-1);j++)
{
arr[i][j] = num++;
if (arr[i][j] == L * R)
{
bl=false;
}
}
for(j=i;bl=true&&(j<R-i);j++)
{
arr[j][L-i-1] = num++;
if (arr[j][L-i-1] == L * R)
{
bl=false;
}
}
for(j=L-i-2;bl=true&&(j>=i);j--)
{
arr[R-i-1][j] = num++;
if (arr[R-i-1][j] == L * R)
{
bl=false;
}
}
for(j=R-i-2;bl=true&&(j>=i+1);j--)
{
arr[j][i] = num++;
if (arr[j][i] == L * R)
{
bl=false;
}
}
}
cout << L * R<<"ddd" << endl;
for(i=0;i<R;i++)
{
for(j=0;j<L;j++)
{
cout << arr[i][j] << " " ;
}
cout << endl;
}
cout << endl;
}
int main()
{int n;
int a;
while(1)
{
cin >> n >> a;
asdf(n,a);
break;
}
return 0;
}
일단 이거 달팽이고 맨처음에 2개수 입력받아서 행열 하는건데
복사해서 해보면 알겠지만 맨 마지막에 자꾸 수가 겹쳐. 원래있던 수에 겹쳐쓰기돼서 이후의 수가 나오는데
그래서 맨 마지막에 브레이크걸려고 if에 쓴건데
만약 array의 수가 행 * 열(예를들면 맨첨에 6,8 입력했으면 48) 의 수가 나오면 false넣어서 for에서 전부다 밖으로 탈출하게 하려고 한건데
왜 정상적으로 안되는거지.. 형들좀 도와줘요
플밍 초보라 너무힘듬..
댓글 0