C (203 자, 입력 루프 없음 : 기능 만)
#include <stdio.h>
#define P (int*a,int n){
#define F for(i=0;i<n;i++){
int i,j,v;s P F if(a[i]>a[i+1])return 0;}return 1;}void h P F v=a[i];a[i]=a[j=rand()%n];a[j]=v;}}void b P while(!s(a,n-1))h(a,n);}
이것은 stdin에서 배열을 읽고 정렬 된 배열을 작성하는 다음과 같습니다. Q가 전체 프로그램이 아닌 기능을 요청했기 때문에 ...
C (296 자)
#include <stdio.h>
#define P (int*a,int n){
#define F for(i=0;i<n;i++){
int i,j,n,v,x[999];s P F if(a[i]>a[i+1])return 0;}return 1;}void h P F j=rand()%n;v=a[i];a[i]=a[j];a[j]=v;}}void b P while(!s(a,n-1))h(a,n);}main(){while(scanf("%d",&v)==1)x[n++]=v;if(!s(x,n))b(x,n);F printf("%d\n",x[i]);}}
컴파일하면 경고가 발생할 수 있습니다 (암시 적 선언). 999 개의 요소로 강화 된 배열 크기 제한. 깨지기 쉬운.
배열이 정렬되어 있는지 미리 확인할 필요가 없으면 284에서 수행 할 수 있습니다.
C (251 자, 284 자)
#include <stdio.h>
#define F for(i=0;i<n;i++){
int i,j,n,v,a[999];s(int n){F if(a[i]>a[i+1])return 0;}return 1;}void h(){F v=a[i];a[i]=a[j=rand()%n];a[j]=v;}}void b(){while(!s(n-1))h();}main(){while(scanf("%d",&a[n++])>0);b();F printf("%d\n",a[i]);}}
(함수 인수 대신 전역을 사용).