stdio.h>voidswap(inta[],inti,intj){?intt=a[i];?a[i]=a[j];?a[j]=t;}intpartition(inta[],intp,intr){inti=p;intj=r+1;intx=a[p];while(1){while(i<r&&a[++i]<x);while(a[--j]>x);if(i>=j)break;swap(a,i,j);}?______________________;returnj;}voidquicksort(inta[],intp,intr){if(p<r){intq=partition(a,p,r);quicksort(a,p,q-1);quicksort(a,q+1,r);}}intmain(){?inti;?inta[]={5,13,6,24,2,8,19,27,6,12,1,17};?intN=12; quicksort(a,0,N-1); for(i=0;i<N;i++)printf("%d",a[i]);?printf("\n"); return0;}注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。答案:swap(a,p,j)第五题抽签X星球要派出一个5人组成的观察团前往W星。其中:A国最多可以派出4人。B国最多可以派出2人。C国最多可以派出2人。....那么最终派往W星的观察团会有多少种国别的不同组合呢?下面的程序解决了这个问题。数组a[]中既是每个国家可以派出的最多的名额。程序执行结果为:DEFBEFFFBDFFFBDEFFBCFFFBCEFFBCDFFBCDEF....(以下省略,总共101行)#include<stdio.h>#defineN6#defineM5#defineBUF1024voidf(inta[],intk,intm,charb[]){?inti,j;