코드가 실행하면 멈춥니다. 코드문제인가요?
김애교
질문 제목 : 코드가 실행하면 멈춥니다. 코드문제인가요?코드 문제인지에 대한 질문.질문 내용 :
#includestdio.h
void bubblesort(int ary[], int len);
int main()
{
int arr1[4]={3,2,4,1};
int i;
bubblesort(arr1, sizeof(arr1)/sizeof(int));
for(i=0; i4; i++)
printf(%d , arr1[i]);
printf(\n);
return 0;
}void bubblesort(int ary[], int len)
{
int i=0, j=0;
int temp=0;
for(i=0; ilen-1; i++)
{
for(j=0; j=(len-i)-1; j++)
{
if(ary[j]ary[j+1])
{
temp=ary[j];
ary[j]=ary[j+1];
ary[j+1]=temp;
}
}
}
}
이러한코드입니다.
설명하자면 배열의 크기를 순서대로 맞추는 프로그램입죠.
그런데....
이코드를 컴파일하여 실행하면 멈춰버립니다.
그냥 아무것도 안되고 도스창만떠있네요..
코드에 문제가 있는걸까요?
답변 부탁드립니다.
원래 짜려했던 소스는
#includestdio.h
void size(int ary[], int len)
{
int i, j;
int temp;
for(i=0; ilen-1; i++)
{
for(j=0; j=(len-i)-1; j++)
{
if(ary[j]ary[j+1])
{
temp=ary[j];
ary[j]=ary[j+1];
ary[j+1]=temp;
}
}
}
}
int main()
{
int arr1[100];
int arr2[100];
int i=0, temp=0, temp1=0, count1=0, count2=0;
int max1=0, max2=0;
printf(숫자를 입력시 홀수부터 짝수까지 차례대로.\n);
printf(숫자 몇개를 입력받으시겠습니까? 0은입력받지 않습니다. : );
scanf(%d, &temp);
{
if(temp==0){
printf(0은 입력받지 않습니다.\n);
printf(다시입력: );
scanf(%d, &temp);
}
else{
printf(\n);
}
}
printf(%d개 입력받으시겠습니다.\n\n, temp);
printf(이제 숫자를 입력받겠습니다.\n);
for(i=temp; i0; i--)
{
if(i==1)
printf(마지막 입력입니다.\n\n);
else if(i1)
p;printf(현재 %d번 남았습니다.\n\n, i);
printf(입력 : );
scanf(%d, &temp1);
if(temp1%2 == 1)
{
arr1[count1] = temp1;
count1 +=1;
}
else if(temp1%2 == 0)
{
arr2[count2] = temp1;
count2 += 1;
}
}
size(arr1, count1);
for(i=0; icount1; i++)
printf(%d , arr1[i]);
size(arr2, count2);
for(i=0; icount2; i++)
printf(%d , arr2[i]);return 0;
}
이러한 프로그램입니다.
-
마루나 2023-04-12
위에분 말처럼 이중포문 안에있는 j = (len-i) -1 을
j = (len-i) -1로 고쳐주시면 돌아갈것같아요ㅇㅇ -
민G 2023-04-12
void bubblesort(int ary[], int len) 두번째 for문에서 조건식 적는 부분에 = 이라고 그냥 대입을 하셨네요
그쪽에서 문제가 있지 않나 싶습니다. ㅎ