http://www.bnuoj.com/bnuoj/contest_show.php?cid=615#problem/0

题目要求我们先找出最大最小值,然后按非降序排列,找出相邻两数之差的最大值,题目不难,倒让我练了下qsort()函数排序

#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b){
    return *(int *)a-*(int *)b>0?-1:1;
}
int main(){
    int n,m,a[100],cas=1;
    while(scanf(“%d”,&n)!=EOF){
        int i,j;
        for(i=0;i<n;i++){
            scanf(“%d”,&m);
            for(j=0;j<m;j++)
                scanf(“%d”,&a[j]);
            qsort(a,m,sizeof(a[0]),cmp);
            printf(“Class %d\nMax %d, Min %d, “,cas++,a[0],a[m-1]);
            int gap=-1,k;
            for(k=0;k<m-1;k++){
                if(a[k]-a[k+1]>gap)
                    gap=a[k]-a[k+1];
            }
            printf(“Largest gap %d\n”,gap);
        }
    }
    return 0;
}

发表评论

电子邮件地址不会被公开。

Post Navigation