質問するログイン新規登録

質問編集履歴

1

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

2019/04/26 10:54

投稿

Kassy11
Kassy11

スコア26

title CHANGED
File without changes
body CHANGED
@@ -3,8 +3,69 @@
3
3
  原因がわからないため、教えていただけると幸いです。
4
4
 
5
5
 
6
+ ```
7
+ #include <stdio.h>
8
+ #include <stdlib.h>
9
+ #define MAXDATA 10
10
+
11
+ static int number[MAXDATA];
12
+
13
+ int input_file(char *input_name);
14
+ void output_file(char *output_name,int n, int number[]);
15
+ void sort_func(int number[],int n);
16
+
17
+ int main(int argc,char *argv[]) {/*agrv[1]は入力ファイル名、[2]は出力ファイル名*/
18
+ int n;
19
+
20
+ if(argc != 3){/*ファイルは2つのみ*/
21
+ printf("入力ファイルと出力ファイルのみを指定してください.\n");
22
+ return 1;
23
+ }
24
+
25
+ n = input_file(argv[1]);
26
+ sort_func(number,n);
27
+ output_file(argv[2],n,number);
28
+
29
+ return 0;
30
+ }
31
+
32
+ int input_file(char *input_name){/*入力ファイル名を受け取り、ファイルをオープンして読み込み、配列に格納し、配列の個数を返す*/
33
+ int count = 0, temp;
34
+
35
+ FILE *fp;
36
+ if((fp = fopen(input_name,"r")) == NULL){
37
+ printf("入力ファイルをオープンできませんでした。\n");
38
+ }
39
+
40
+ while(fscanf(fp,"%d",&temp)==1){
41
+ if(count >= MAXDATA){
42
+ printf("エラー:整数は1個以上10個以下\n");
43
+ return 1;
44
+ }
45
+ number[count++] = temp;
46
+ }
47
+ printf("入力ファイルの処理完了。\n");
6
- ```sort_func
48
+ fclose(fp);
49
+
50
+ return count;
51
+ }
52
+
53
+
54
+ void output_file(char *output_name, int n, int number[]){/*出力ファイル名を受け取り、ファイルをオープンして、配列の内容をファイルに書き込む*/
55
+ FILE *fp;
56
+ int i;
57
+ if((fp = fopen(output_name,"w")) == NULL){
58
+ printf("出力ファイルをオープンできませんでした。\n");
59
+ }else{
60
+ printf("書き込みに成功しました。\n");
61
+ for(i=0;i<n;i++){
62
+ fprintf(fp,"%d ",number[i]);
63
+ }
64
+ }
65
+ fclose(fp);
66
+ }
67
+
7
- void sort_func(int number[],int n){/*挟み込み法で昇順ソートする関数、配列と要素数を受け取る*/
68
+ void sort_func(int number[],int n){/*挟み込み法で昇順ソートする関数*/
8
69
  int k,x,m,y;
9
70
  for(k=0;k<n;k++){
10
71
  if(number[k-1]>number[k]){/*1.昇順になっていない配列の要素(number[i])を特定して、xに代入*/
@@ -23,4 +84,8 @@
23
84
  }
24
85
  }
25
86
  printf("要素を昇順にソートしました。\n");
87
+ }
88
+
89
+
90
+
26
91
  ```