50020. Generic Index Array

難度:3.5/5

注意cmp函式的越界問題。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
typedef struct ARRAY{
int num[2050];
int left;
int num_size;
} ARRAY;
*/

#include "array.h"
#include <stdio.h>
#include <stdlib.h>

int cmp(const void* a, const void* b){
int num_a = *(int*)a;
int num_b = *(int*)b;
if(num_a > num_b) return 1;
else if(num_a == num_b) return 0;
else return -1;
}

void init(ARRAY *a, int left, int right){
a->left = left;
a->num_size = right - left + 1;
for(int i = 0; i < a->num_size; i++){
a->num[i] = -2147483647;
}
}
int set(ARRAY *a, int index, int value){
if(index - (a->left) < (a->num_size) && index - (a->left) >= 0){
a->num[index - a->left] = value;
return 1;
}
else{
return -2147483648;
}
}
int get(ARRAY *a, int index){
if(index - (a->left) < (a->num_size) && index - (a->left) >= 0){
return a->num[index - a->left];
}
else{
return -2147483648;
}
}
void print(ARRAY *a){
for(int i = 0; i < (a->num_size); i++){
if(a->num[i] == -2147483647){
printf("No value\n");
}
else{
printf("%d\n", a->num[i]);
}
}
}
void sort(ARRAY *a){
qsort(a->num, a->num_size, sizeof(int), cmp);
}


50020. Generic Index Array
https://aaronlin1229.github.io/judgegirl_50020/
Author
Akizumi
Posted on
July 17, 2023
Licensed under