• 1、第K极值


    解答:可以用顺序存储结构。然后需要排序,之后判断是否为质数。
             所以对C而言算法由三部分组成:顺序线性表的建立,排序算法的实现,判断是否为质数。
             化简之后将建立顺序表放在main里,所以只要排序算法和判断是否为质数即可。
    具体代码:
     1 #include <stdio.h>
     2 #include <stdlib.h>
     3  
     4 #define true 1
     5 #define false 0
     6 #define MAXSIZE 10000
     7  
     8 typedef int status; 
     9 typedef struct {
    10         int key;
    11 }Redtype;
    12 typedef struct {
    13         Redtype r[ MAXSIZE];
    14         int length;
    15 }*SqList,LNode;
    16  
    17 void SelectSort(SqList L ){
    18         int j, l;
    19         Redtype temp;
    20         for ( int i = 0; i < L->length; i++){
    21               l = i ;
    22                for (j = i + 1; j < L->length; j++){
    23                       if ( L->r[j].key < L->r[l].key)
    24                            l = j;
    25               }
    26                if (i != l){
    27                      temp = L->r[i];
    28                       L->r[i] = L->r[l];
    29                       L->r[l] = temp;
    30               }
    31        }
    32 }
    33  
    34 status isPrimeNum(int x ){
    35         if ( x < 2)
    36                return false;
    37         else if ( x == 2)
    38                return true;
    39         else{
    40                for ( int i = 2; i < x; i++){
    41                       if ( x%i == 0)
    42                             return false;
    43               }
    44                return true;
    45        }
    46 }
    47  
    48 int main(){
    49         SqList L;
    50        L = ( LNode*)malloc( sizeof ( LNode));
    51         int n,k,i,m;
    52        scanf( "%d %d", &n,&k);
    53         if (n > MAXSIZE || k > n)
    54               exit(0);
    55        L->length = n;
    56         for (i = 0; i < n; i++){
    57               scanf( "%d", &L->r[i].key);
    58                if (L->r[i].key < 0)
    59                       break;
    60        }
    61        SelectSort(L);
    62        m = L->r[n - k].key - L->r[k - 1].key;
    63         if (isPrimeNum(m))
    64               printf( "YES
    %d
    ", m);
    65         else
    66               printf( "NO
    %d
    ", m);
    67         return 0;
    68 }
     
    由本题目得到的领悟:1、C语言没有引用和bool类型。
                                2、在CSDN上提问还是比较有效率的,所以要学会提问和思考。
                                3、英语是硬伤,已经提示出错,然而却不懂的看,悲哀。
     
     
     
  • 相关阅读:
    MySQL my.cnf详解
    函数:sleep-exit-wait
    fork-小实验
    OS-进程调度
    CET-4流程
    SDK和API的区别
    生活-金钱管理-不是理财
    算法设计与分析:Strassen矩阵乘法
    力扣:二进制加法求和
    算法设计与分析:大整数乘法
  • 原文地址:https://www.cnblogs.com/langzi1996/p/6390386.html
Copyright © 2020-2023  润新知