=== 소 감 === 05/7/11 역시 원시적이게 코드를 짰다 ㅠ 다르게 짤 생각중.. 처음에 포인터 에러가 나서, 혼났다 ㅠ 헉 !! 행, 열에 해당하는 숫자만 출력하는 것이었다. ver.2 만들어야겠다. ver.3 파스칼삼각형 코딩한다니까. 보창오빠가 흘려가는 말로 "재귀함수로 짜면 되지 않냐" 고 했던 말이 생각나서 짜봤다. 메모리 낭비없이 깔끔하긴 한데, 제대로 짠건지 모르겠다. 재귀함수는 어쩔 땐 헷갈린다. === 소 스 === ==== ver.1 - 파스칼 삼각형 전체 출력 ==== {{{~cpp #include void pascal_tri(int pascaltri[][100], int row); void main() { int pascaltri[100][100]; int row; printf("행을 입력 :"); scanf("%d", &row); pascal_tri(pascaltri, row); } void pascal_tri(int pascaltri[][100], int row) { int i,j; for(i = 0; i < row; i++) { pascaltri[i][0] = 1; pascaltri[i][i] = 1; } for(i = 2; i < row; i++) { for(j = 1; j < i; j++) { pascaltri[i][j] = pascaltri[i-1][j-1] + pascaltri[i-1][j]; } } for(i = 0; i < row; i++)// print { for(j = row; j > i; j--) { printf(" "); } for(j = 0; j <= i; j++) { printf("%d ", pascaltri[i][j]); } printf("n"); } } }}} ==== ver.2 행,열에 해당하는 숫자 ==== {{{~cpp #include void pascal_tri(int pascaltri[][100], int row, int col); void main() { int pascaltri[100][100]; // 이 부분을 어떻게 더 효율적으로 바꿀 것인가..->ver.3 int row, col; while(1) { printf("찾고자 하는 열, 행을 차례로 입력 :"); scanf("%d %d", &col, &row); if(col >= row){ break; }else{ printf("다시 입력해 주세요...n"); } } pascal_tri(pascaltri, col, row); } void pascal_tri(int pascaltri[][100], int col, int row) { int i,j; for(i = 0; i < 100; i++) { pascaltri[i][0] = 1; pascaltri[i][i] = 1; } for(i = 2; i < 100; i++) { for(j = 1; j < i; j++) { pascaltri[i][j] = pascaltri[i-1][j-1] + pascaltri[i-1][j]; // 이 for 문들 역시 ver.3에서 더 나아져야 함. } } printf("%d열 %d행 = %dn", col, row, pascaltri[col-1][row-1]); } }}} ==== ver.3 - 더 나은 소스 ==== {{{~cpp #include int pascal_tri(int row, int col); void main() { int row, col, result; while(1) { printf("찾고자 하는 열, 행을 차례로 입력 :"); scanf("%d %d", &col, &row); if(col >= row){ break; }else{ printf("다시 입력해 주세요...n"); } } result = pascal_tri(col, row); printf("%d열 %d행 = %dn", col, row, result); } int pascal_tri(int col, int row) { if(row == 1 || col == row){ return 1; }else{ return pascal_tri(col-1, row-1) + pascal_tri(col-1, row); } } }}} === 나한테 할 말 === 입력받아서 동적할당을 해보는게 어때..^^ 저렇게 하면 메모리 낭비 또는 초과가 생길듯..^^ 그리고 문제가 '파스칼 삼각형을 출력하시오.' 가 아니었던거 같은데?? 다시 보는게.. ㅎㅎ 난 잠시 겜방에 온거니 다시 일하러 가야 되서 말야..^^ 자세히는 못보겠어.^^ 그러니 자세한 사항은 필요할때 '자기야'에게 물어보라구^^ - [조현태] 지금 나의 머리는 터질 듯 아프단다. ^^; 포인터 때문에 데여갖고-.ㅠ 소스를 아예 바꾸는 큰 공사를 치뤘기 때문에 ㅠ 좀 있다 생각해보마 ㅋㅋ 그리고 소감 읽어주길.. 문제 잘못 푼것을 나중에 알았단다 ㅋ--아영 ㅎㅎㅎ 소감 위의 세줄은 읽고 기억했는데, 밑의 두줄은 못봤어.ㅎㅎ 2차 이상의 배열을 포인터로 넘기는건 고생인데 말야.^^ 고생했겠네..^^ 포인터..ㅎㅎㅎ 그래도 즐거운 하루. 즐거운 코딩 되라구.. 진짜 일하러 가야겠다 뱌뱌~~ - [조현태] 엇~ 아영이 누나도 처음엔 원시적으로 짜셨네요~^^;; 후후.. 재귀함수로 이렇게 짤수있는거군요 센스 =ㅅ=b - [김준석] ---- [LittleAOI] [파스칼삼각형]