배열 정렬 질문드립니다.
해님꽃
질문 제목 : 배열 정렬1차원 배열 두개를 합치는데 문제 발생질문 내용 :배열 두개를 합쳣는데 앞에것만 나오고 뒤의것은 오류가 발생합니다.
컴파일할때는 성공이라 해놓고 실행하니 문제발생하네요.
합치는 순서는 값 크기순입니다.
실제로 원하는값은1, 2, 2, 3, 5, 6, 7, 8, 9, 13, 14 인데
vs2008 로 아래를 돌리니-858993460-858993460-858993460-858993460-858993460 1 2 5 7 9 14 라고 나오고
c4droid로 돌리니 1 2 5 5 7 9 14 191 1280 35387 2132542208 이라고 뜹니다.어디가 문제인지 알려주세요.#include stdio.h
void arraymerge(int *a,int an, int*b, int bn, int*c);
int main()
{
int a[6] = {1,2,5,7,9,14};
int b[5] = {2,3,6,8,13};
int c[11];
int i,leng,an,bn;
an = sizeof(a)/4; //배열1개크기=4
bn = sizeof(b)/4; arraymerge(a, sizeof(a)/4, b, sizeof(b)/4, c);
leng = an+bn;
for(i=0;ileng;i++)
printf(%d \n, c[i]); return 0;
}void arraymerge (int *a, int an, int *b, int bn, int *c)
{
int i=0, j=0, tempo;
int leng; for(i=0;ian;i++)
{
c[i] = a[i];
}
for(i=an;ibn;i++)
{
c[i] = b[j++];
} leng = an+bn; for(i=0;ileng;i++)
{
for(j=0;jleng-i-1;j++)
{
if(c[j]c[j+1])
{
tempo = c[j];
c[j] = c[j+1];
c[j+1] = tempo;
}
}
}
}