PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2010/04/08 16:21:46
Name ROMANMAX
Subject c언어 고수님들.도와주십시요........혼자서하기에는 벅찹니다.
ducci 시퀀스라는 문제가 저한태 떨어졋에요.;;;;

근대 아직 c에대한 개념도 다안잡앗는데 이런문제를 주다니.;;;

그래서 대충짜봣어요...

ducci 시퀀스는

a1,a2,⋯,an →( |a1−a2| , |a2−a3| ,~~, |an−a1| )

ex(8,11,2,7 → 3,9,5,1 → 6,4,4,2 → 2,0,2,4 → 2,2,2,2 →(0,0,0,0).)
이런공식인데요...

어느정도짯다고???생각되는데...실행이안되내요..

몇번 시퀀스를 할건지입력하고

그다음 괄호안에 숫자를 몇개넣을건지입력하고

다음에 괄호안에 넣을 숫자를 입력하는것까지는 되는데요...참고로 괄호란..배열에차례대로 넣는다고생각하시면되요..

근대왜 자꾸 오류가나내요 실행하면...

물어보니...메모리 할당인가 머,....그러던대 ..

제가c를 배울때 malloc()이걸 안배웟어요...

이걸써야한다는데....설명을 바도 모르겟고.;;;

이걸루 써야하는지 정확히도 모르고...

이게지금 제가 짜고있는 소스임..허접하다고 생각하지 마시고 좀도와주세요...

#include <stdio.h>
#include <math.h>

int ducci(int a[10],int k);

void main()
{
        int i, j, k,z;
        int a[10];
        int b[10];
        
        
        printf("몇번 수행할건지 입력해\n");
        scanf("%d", &j);
        
        for(i=0;i<j;i++){
                printf("괄호안 숫자의객수를 입력해\n");
                scanf("%d", &k);
                
                printf("괄호안 숫자를 입력해\n");
                for(i=0;i<k;i++){
                        scanf("%d", &z);
                        a[i]=z;
                }
                b[10]=ducci(a[10],k);
                        
        }
        
        
}

int ducci(int a[10],int k)
{
        int i;
        
        for(i=0;i<1000;i++)
        {
                
                for(i=0;i<k;i++){
                        a[i]=abs(a[i+1]-a[i]);
                }
                a[k-1]=abs(a[k]-a[0]);
                
                
        }
        for(i=0;i<10;i++) {
                if(a[i] != 0 ) {
                        printf("loof");
                        return;
                }
        }
        printf("zero");
        
        
        return (a[10]);
        
}

이떻게수정해야..메모리 부족이란 예기가 안나올까요?

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
10/04/08 16:34
수정 아이콘
배열의 크기를 벗어나서 참조하시는 게 곳곳에 보이네요;;
인덱스가 0에서부터 시작하므로 배열 크기가 10일 때 a[10] b[10]을 참조하면 11번째를 가져오려고 하니 메모리 오류가 납니다.
a 배열 크기가 10밖에 안되는데 루프를 1000번 도는 것도 그렇고요.
충분히 배열을 크게 잡으시고 인덱스 범위 벗어나는 것에 주의하면서 고쳐보세요.
검은창트롤
10/04/08 16:48
수정 아이콘
int a[10] 이라고 정의하셨죠.
그럼 int(정수형) 변수 a[0], a[1], a[2]...a[8]. a[9] 10개의 변수를 선언한 것과 같습니다.
일단 a[10]이 나오면 안되죠.
10/04/08 19:55
수정 아이콘
a[]를 업데이트 하는 곳에서 a[0]이 for문 안에서 바뀌는데 그 다음줄에 a[0]을 이용해서 a[k-1]을 바꾸네요. 잘못된 것 같아요.
배열을 함수에 전달하려면 배열명을 이용해야 돼요. a[x]라고 하면 a[x]에 있는 값만 전달되므로 a를 전달해야 합니다. a는 a[0]의 주소고요.
그리고 리턴도 저렇게 하면 배열 리턴이 되는 게 아니라 b[x]에 있는 값만 리턴되므로,
void ducci(int* a, int* b, int k) 이렇게 함수 선언하고 결과값을 b[]에 저장하는 게 나을 것 같네요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
78766 이런 유형의 남자는 여자 입장에서 좋게 보일까요? [17] Christian The Poet2994 10/04/08 2994
78763 미드 밴드오브브라더스 - 요즘 나오는 더 퍼시픽과의 관계 질문.(+미드추천) [7] 샤르미에티미3092 10/04/08 3092
78762 인터넷 도중 마우스포인트 질문드립니다. 율본좌2142 10/04/08 2142
78761 크롬플러스를 사용하고 있는데요. 오류가 잘뜹니다. kiraseed2122 10/04/08 2122
78760 인터넷 익스플로러 재설치 관련 질문 로트리버2651 10/04/08 2651
78757 난생처음해보는 소개팅.. 조언좀 부탁드립니다. [21] pipipi2394 10/04/08 2394
78755 여자키 173cm를 남자키로 환산하면 어느정도 될까요..? [23] 비야레알8975 10/04/08 8975
78754 휴대폰 구입에 관해서 질문입니다. [2] Benjamin Linus2112 10/04/08 2112
78753 옴니아팝(핸드폰) 장단점좀 알려주세요 [3] Dawn2566 10/04/08 2566
78752 20살 여자친구 이거 이해해야하는건가요? [31] LOVE SupremeTeam4720 10/04/08 4720
78751 혹시 충청도( 특히 충주)분들 계시나요, 충주근처 드라마촬영지에 대해서 알고싶습니다 [2] 이태원서울팝2090 10/04/08 2090
78750 아버지 생신 선물 질문입니다~! [5] CrazY_BoY2124 10/04/08 2124
78749 직장다니는 여자선배한테 줄 선물 추천좀해주세요~ [2] 골드똥2599 10/04/08 2599
78747 군대 계급을 모르겠어요... [23] siach3259 10/04/08 3259
78746 이를 하얗게 할 방법이 없을까요? [7] 언데드네버다2528 10/04/08 2528
78745 알약먹을때.. [3] 탈퇴한 회원2334 10/04/08 2334
78744 미국 문화를 알 수 있는 책 [1] RandomofAsia2213 10/04/08 2213
78743 헬스 하시는 분들 질문좀 드릴게요. ^^ [9] 고등어3마리2070 10/04/08 2070
78742 이 노래 제목 아시는분 계신가요? [2] 밤톨이2114 10/04/08 2114
78741 크롬플러스 관련 질문드립니다. [4] 2월21일토요일2214 10/04/08 2214
78740 c언어 고수님들.도와주십시요........혼자서하기에는 벅찹니다. [7] ROMANMAX1860 10/04/08 1860
78739 음악 하나만 질문 드릴게요. [2] 동네노는아이2483 10/04/08 2483
78738 여자친구 문제 입니다 ㅠㅠ;;도와주세용 [3] 낭만원숭이2520 10/04/08 2520
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로