質問編集履歴

1

全ソースコードを書き込ませていただきました。

2019/04/26 10:54

投稿

Kassy11
Kassy11

スコア26

test CHANGED
File without changes
test CHANGED
@@ -8,9 +8,131 @@
8
8
 
9
9
 
10
10
 
11
- ```sort_func
11
+ ```
12
12
 
13
+ #include <stdio.h>
14
+
15
+ #include <stdlib.h>
16
+
17
+ #define MAXDATA 10
18
+
19
+
20
+
21
+ static int number[MAXDATA];
22
+
23
+
24
+
25
+ int input_file(char *input_name);
26
+
27
+ void output_file(char *output_name,int n, int number[]);
28
+
29
+ void sort_func(int number[],int n);
30
+
31
+
32
+
33
+ int main(int argc,char *argv[]) {/*agrv[1]は入力ファイル名、[2]は出力ファイル名*/
34
+
35
+ int n;
36
+
37
+
38
+
39
+ if(argc != 3){/*ファイルは2つのみ*/
40
+
41
+ printf("入力ファイルと出力ファイルのみを指定してください.\n");
42
+
43
+ return 1;
44
+
45
+ }
46
+
47
+
48
+
49
+ n = input_file(argv[1]);
50
+
51
+ sort_func(number,n);
52
+
53
+ output_file(argv[2],n,number);
54
+
55
+
56
+
57
+ return 0;
58
+
59
+ }
60
+
61
+
62
+
63
+ int input_file(char *input_name){/*入力ファイル名を受け取り、ファイルをオープンして読み込み、配列に格納し、配列の個数を返す*/
64
+
65
+ int count = 0, temp;
66
+
67
+
68
+
69
+ FILE *fp;
70
+
71
+ if((fp = fopen(input_name,"r")) == NULL){
72
+
73
+ printf("入力ファイルをオープンできませんでした。\n");
74
+
75
+ }
76
+
77
+
78
+
79
+ while(fscanf(fp,"%d",&temp)==1){
80
+
81
+ if(count >= MAXDATA){
82
+
83
+ printf("エラー:整数は1個以上10個以下\n");
84
+
85
+ return 1;
86
+
87
+ }
88
+
89
+ number[count++] = temp;
90
+
91
+ }
92
+
93
+ printf("入力ファイルの処理完了。\n");
94
+
95
+ fclose(fp);
96
+
97
+
98
+
99
+ return count;
100
+
101
+ }
102
+
103
+
104
+
105
+
106
+
107
+ void output_file(char *output_name, int n, int number[]){/*出力ファイル名を受け取り、ファイルをオープンして、配列の内容をファイルに書き込む*/
108
+
109
+ FILE *fp;
110
+
111
+ int i;
112
+
113
+ if((fp = fopen(output_name,"w")) == NULL){
114
+
115
+ printf("出力ファイルをオープンできませんでした。\n");
116
+
117
+ }else{
118
+
119
+ printf("書き込みに成功しました。\n");
120
+
121
+ for(i=0;i<n;i++){
122
+
123
+ fprintf(fp,"%d ",number[i]);
124
+
125
+ }
126
+
127
+ }
128
+
129
+ fclose(fp);
130
+
131
+ }
132
+
133
+
134
+
13
- void sort_func(int number[],int n){/*挟み込み法で昇順ソートする関数、配列と要素数を受け取る*/
135
+ void sort_func(int number[],int n){/*挟み込み法で昇順ソートする関数*/
14
136
 
15
137
  int k,x,m,y;
16
138
 
@@ -48,4 +170,12 @@
48
170
 
49
171
  printf("要素を昇順にソートしました。\n");
50
172
 
173
+ }
174
+
175
+
176
+
177
+
178
+
179
+
180
+
51
181
  ```