原题链接
这道题有点扯,一开始读题我都没看懂是什么意思,实际上就是排序,求前后两部分和的差。总人数若为奇数则外向的人多一个,若为偶数则内向外箱的人一样多。
然后我用了c语言里面我目前认为最好用的库函数之一,qsort函数,感兴趣的朋友可以去百度。
代码如下:
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a,const void *b){
return *(int *)a-*(int *)b;
}
int main(){
int n,i,sum=0;
scanf("%d",&n);
int x[n];
for(i=0;i<n;i++){
scanf("%d",&x[i]);
}
qsort(x,n,sizeof(int),cmp);
for(i=0;i<n/2;i++){
sum+=x[n-1-i]-x[i];
}
if(n%2==0){
printf("Outgoing #: %d\nIntroverted #: %d\nDiff = %d",n/2,n/2,sum);
}else{
printf("Outgoing #: %d\nIntroverted #: %d\nDiff = %d",n/2+1,n/2,sum+x[i]);
}
}