[완료]C에서 달팽이 출력하는거...
글쓴이: onam3125 / 작성시간: 일, 2012/05/13 - 4:03오후
#include <stdio.h> #include <stdlib.h> int main() { int **tilt; int x=0; int y=-1; int t=1; int p, i; int cnt=1; int jmax, max; int sel, prove=0; printf("===============================================\n"); printf("\t\t 프로그램입니다..\n"); printf("===============================================\n"); select : printf("의 크기를 입력하세요 : "); scanf("%d", &p); tilt = (int**)malloc(sizeof(int)*p); if(prove!=1) { for(i=0;i<= p; i++) { tilt[i] = (int*)malloc(sizeof(int)*p); }//2차원 배열 할당 } max=p; jmax=max; while(0<=jmax) { for(i=0;i<jmax;i++) //행 { y=y+t; tilt[x][y]=cnt; cnt++; } jmax--; for(i=0;i<jmax;i++)// 열 { x=x+t; tilt[x][y]=cnt; cnt++; } t=t*-1; } for(x=0;x<max;x++)// 출력 { for(y=0;y<max;y++) { printf("%4d",tilt[x][y]); } printf("\n"); } for(i=0; i< p; i++) { free(tilt[i]); } //메모리 버퍼 해제. printf("계속하시겠습니까? Yes<1> / No <any> : "); scanf("%d", &sel); switch(sel) { case 1: { fflush(stdin); fflush(stdout); prove = 1; tilt=0; goto select; } default : { printf("===============================================\n"); printf("프로그램을 종료합니다.\n"); printf("===============================================\n"); return 0; } } }
Forums:
1. 반복실행될 때 에러가 나는 특정 부분이 어딘지
1. 반복실행될 때 에러가 나는 특정 부분이 어딘지 말을 해주셔야 뭐가 문제인지 답을 드릴 수 있겠죠.
2. 위에꺼 되면 아래꺼도 쉽게 됩니다. 시작을 어디서 하느냐의 문제니까 잘 생각해 보세요.
그리고 소스가 완전하지 않은 것 같은데 code태그를 써서 감싸주시면 더 좋을것 같네요
피할 수 있을때 즐겨라! http://melotopia.net/b
다시 돌아가서, 이쯤에서 에러가 나더라구요 ㅠㅠ
tilt = (int**)malloc(sizeof(int)*p); 까지는 괜찮은거 같고...
prove 지나자 마자 for(i=0;i<= p; i++)이쪽이 디버깅 되지도 않고(중단점 찍었는데도)
바로 에러 찍고 버로우 타더라구요 ;;
에러가 뭔가요?
에러가 뭔가요?
피할 수 있을때 즐겨라! http://melotopia.net/b
tilt[i]를 free 한
tilt[i]를 free 한 후에,
free(tilt); 를 빼 먹으셨네요.
그거 하면...
free(tilt); 부분에서 토하더라구요 ㅠㅠ..
heap corruption detected after normal block (#66)
메모리 버퍼 때문에 ...
꺼지면서 뱉는 말이...
2009709219_10주차_과제_달팽이배열.exe의 0x76fe15ee에 처리되지 않은 예외가 있습니다. 0xC0000005: 0xfdfdfe15 위치를 기록하는 동안 액세스 위반이 발생했습니다.
래요...음 ;; 이거가지고 알 수 있나 ;;
찾아보니까.
//
이미 만들어진 배열을 회전'하는 방법'이 있네요.
http://blog.naver.com/kimcblog/70101261277
//
그냥 만들어 본다면.
좌측 하단'을 시작으로. +1씩 이동합니다.
방향'은 위. 우. 아래. 좌. 순서'를 반복하며.
방향'을 옮기는 조건은
- 해당위치가 각각의 모서리 인경우.
- 또는. 값'이 이미 존재하는 경우.
입니다.
5 x 5 의 배열을 만들고 해도 되고.
25 개의 선형배열을 만들고 해도 되겠습니다.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
감사합니다 ^^
위 오류 해결되면 해봐야 겠네요 ㅠㅠ..
goto 없이 만들어 보세요
goto 없이 만들어 보세요
피할 수 있을때 즐겨라! http://melotopia.net/b
이렇게...
이런식으로 해서 끝냈습니다 헤헿.
조언 주신분들 감사합니다 (-_-)(_ _)7
댓글 달기