zoukankan      html  css  js  c++  java
  • C语言的qsort使用方式

    题目:
    如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。
    小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列

    代码:
    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    /*
    通过这个题,记住调用C语言的排序函数的方式,尤其是cmp函数的写法
    */
    int cmp(const void* a, const void* b){
       return (*(int*)a - *(int*)b);
    }
    int main(){
        int i, n, t, a[55];
        while(scanf("%d", &n) != EOF){
            memset(a, 0, sizeof(a));
            for(i=0; i<n; i++) scanf("%d", &a[i]);
            qsort(a, n, sizeof(int), cmp);
            t = a[1] - a[0];
            for(i=1; i<n; i++){
                if(i+1<n && a[i+1]-a[i]!=t){
                    printf("Impossible
    ");
                    break;
                }
            }
            if(i==n) printf("Possible
    ");
        }
        return 0;
    }

  • 相关阅读:
    Docker Swarm
    服务器虚拟化
    kubernets的工作流程
    配置docker阿里云加速器
    kubeadm 安装kubernetes集群。
    linux的10个最危险的命令
    18个网络带宽常用命令
    column命令
    dd命令
    scp命令
  • 原文地址:https://www.cnblogs.com/heyour/p/12458393.html
Copyright © 2011-2022 走看看