質問編集履歴

1

ソースコードを見やすくしました

2020/06/01 12:40

投稿

rft3
rft3

スコア7

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
-
7
+ ```ここに言語を入力
8
8
 
9
9
  #include <stdio.h>
10
10
 
@@ -54,27 +54,15 @@
54
54
 
55
55
 
56
56
 
57
- int add(int a, int b){ return a+b; }
58
-
59
- int sub(int a, int b){ return a-b; }
60
-
61
-
62
-
63
57
  int main(int argc, char* argv[]){
64
58
 
65
59
  int N = atoi(argv[1]);
66
60
 
67
-
61
+ // ここに第2コマンドライン引数で,0:昇順と1:降順を指定したい
68
62
 
69
- int a = atoi(argv[1]), b = atoi(argv[2]);
70
63
 
71
- int (*funcp[2])(int, int);
72
64
 
73
- funcp[0] = add; funcp[1] = sub;
65
+ // ここに関数ポインタの配列を定義したい
74
-
75
- for(int i = 0; i < 2; i++) printf("%d¥n", funcp[i](a, b));
76
-
77
-
78
66
 
79
67
 
80
68
 
@@ -84,12 +72,56 @@
84
72
 
85
73
 
86
74
 
87
-
88
-
89
- insert_sort(scores, N, asc);
75
+ // ここにinsert_sort関数の第3引数に比較関数へのポインタを指定したい
90
76
 
91
77
 
92
78
 
93
79
  write_result(argv[4], scores, N);
94
80
 
95
81
  }
82
+
83
+
84
+
85
+
86
+
87
+ ```sort_array.hの中身
88
+
89
+ ```ここに言語を入力
90
+
91
+ int asc(void *p, void *q){ return *(int *)p - *(int *)q; }
92
+
93
+ int desc(void *p, void *q){ return *(int *)q - *(int *)p; }
94
+
95
+
96
+
97
+ void insert_sort(int *arr, int n, int (*cmp)(void*, void*)){
98
+
99
+ int i, j, temp;
100
+
101
+ for(i = 1; i < n; i++){
102
+
103
+ temp = arr[i];
104
+
105
+ for(j = i; j > 0; j--){
106
+
107
+ if(cmp(&arr[j-1], &temp) > 0) arr[j] = arr[j-1];
108
+
109
+ else break;
110
+
111
+ }
112
+
113
+ arr[j] = temp;
114
+
115
+ }
116
+
117
+ }
118
+
119
+ ```
120
+
121
+
122
+
123
+
124
+
125
+ ```
126
+
127
+ ```