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、英语是硬伤,已经提示出错,然而却不懂的看,悲哀。
 
 
 
原文地址:https://www.cnblogs.com/langzi1996/p/6390386.html