저는 아래와 같이 배열을 초기화하는 간단한 정렬 프로그램을 만들었습니다.일부 0으로 int 배열을 초기화하십시오.
int a[]={9,4,7,8,5,2,6,1,0,3};
내 정렬 기능은 [a]에 배열 [0]을 정렬하고 '\ 0'과 같이 0을 처리하고 중지합니다. 내가 0을 다른 장소에두면 그것은 최대 0으로 정렬되고 나머지 배열은 무시됩니다. C는 0을 취급하고 '\ 0'은 여기에서 동일합니까?
내 버블 정렬 프로그램은 다음과 같습니다.
#include<stdio.h>
#include<conio.h>
int main()
{
int a[]={9,4,7,8,5,2,6,1,0,3};
void bubble_sort(int *a);
void print(int *a);
bubble_sort(a);
print(a);
getch();
return 0;
}
void bubble_sort(int *a)
{
int i=0,j,t,n;
for(i=0;a[i]!='\0';i++)
{
n=0;
for(j=1;a[j]!='\0';j++)
{
if(a[j-1]>a[j])
{
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
n++;
}
}
if(n==0)
{
break;
}
}
}
void print(int a[])
{
int i=0;
for(i=0;a[i]!='\0';i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
주 함수 내에서 함수 프로토 타입을 쓰는 것이 좋은지 궁금합니다 ... – Recker
배열의 길이를''bubble_sort''에 전달합니다. 보증 배열은'\ 0 '(= 0)로 끝나지 않습니다. – gongzhitaao
"C는 0을 처리하고 '\ 0'은 여기에서 동일합니까?" - 정의에 따르면. '\ 0'only * 전통적으로 **'char' **의 배열의 끝을 알립니다 ** ... 그것은 일종의 일반적인 end-of-array 센티넬이 아닙니다. –