C/C++の宿題片付けます 132代目
■ このスレッドは過去ログ倉庫に格納されています
0164デフォルトの名無しさん
2009/11/19(木) 17:49:53#include<stdio.h>
#include<stdlib.h>
#define N_MAX 40
#define WRITE(x, y, v) ((x)>=0 && (x)<(n) && (y)>=0 && (y)<(n) && buf[y][x]==0 && (buf[y][x]=(v)))
int main(int argc, char *argv[])
{
char buf[N_MAX][N_MAX+1]={{0}};
int i, n, x=-1, y=0;
int vx[]={1,0,-1,0}, vy[]={0,1,0,-1};
n=22;
if(argc==2) n=atoi(argv[1]);
if(n>N_MAX) n=N_MAX;
for(i=0;i<n;i++)
{
while(WRITE(x+vx[i%4], y+vy[i%4], '0'+(i+1)%10))
{
WRITE(x+vx[(i+1)%4],y+vy[(i+1)%4],' ');
x+=vx[i%4];
y+=vy[i%4];
}
}
for(i=0;i<n;i++) puts(buf[i]);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています