삼각형 넓이 구하는 공식을 응용...
#include <stdio.h>
const int SQUARE=5;
int c,r,m;
for(r=1 ;r<=SQUARE ;++r){
for(c=1 ;c<=SQUARE ;++c){
m=(c+r-1);
//중심대각선을 포함한 위쪽 절반은 좌상 삼각형의 넓이를 이용
if(m<=SQUARE)
{
printf("%3i",(m*(m-1))/2+r);
}
//아래쪽 절반은 전체 넓이에서 우하 삼각형의 넓이를 차감
else
{
m = SQUARE*2-m;
printf("%3i",SQUARE*SQUARE-((m*(m-1))/2+SQUARE-r));
}
}
puts("\n");
}
조노영 님이 쓰신 글 :
: .. #include <stdio.h>
: main()
: {
: int kk[5][5];
: int a,b,c,d;
:
: d=0;
:
: for(a=0;a<5;a++)
: for(b=0;b<5;b++)
: if(b<=a)
: {
: c=a-b;
:
: if(a<5)
: kk[b][c]=++d;
: }
:
: for(a=0;a<5;a++)
: {
: for(b=0;b<5;b++)
: printf("%4d",kk[a][b]);
:
: printf("\n");
: }
: }
:
: 결과 값은
: 1 2 4 7 11
: 3 5 8 12 16
: 6 9 13 17 20
: 10 14 18 21 23
: 15 19 22 24 25
: 이렇게 대각선으로 순차적인 값이 나오는 것인데
: 13부터 쓰레기 값이 대입되어서 나옵니다.
: 프로그램 상으로 문제가 없는것 같은데
: 고수님들의 지적 부탁드립니다.
:
|