回答編集履歴

1

間違ったコードを提示して今いました。

2020/04/29 07:02

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -12,61 +12,43 @@
12
12
 
13
13
  ```C++
14
14
 
15
- #include <stdio.h>
15
+ #include <iostream> // cout
16
16
 
17
- #include <stdlib.h> // qsort
17
+ #include <fstream> // ifstream
18
+
19
+ #include <string> // getline
20
+
21
+ using namespace std;
18
22
 
19
23
 
20
24
 
21
- struct Data {
22
-
23
- int time;
24
-
25
- int se; // start:1, end:-1
26
-
27
- };
28
-
29
-
30
-
31
- int comp(const void *x, const void *y)
25
+ int main(int argc, char*argv[])
32
26
 
33
27
  {
34
28
 
35
- int d = ((struct Data *)x)->time - ((struct Data *)y)->time;
29
+ if (argc != 2) {
36
30
 
37
- return d ? d : ((struct Data *)x)->se - ((struct Data *)y)->se;
31
+ cout << "パラメータの数が違います。\n";
38
32
 
39
- }
33
+ return 1;
40
34
 
35
+ }
41
36
 
37
+ ifstream fin(argv[1]);
42
38
 
43
- int main()
39
+ if (!fin) {
44
40
 
45
- {
41
+ cout << "ファイルをオープンできませんでした\n";
46
42
 
47
- struct Data data[100 * 2];
43
+ return 1;
48
44
 
49
- int n, k = 0;
45
+ }
50
46
 
51
- scanf("%d", &n);
47
+ string test;
52
48
 
53
- for (int i = 0; i < n; i++) {
49
+ while (getline(fin, test))
54
50
 
55
- scanf("%d%d", &data[k].time, &data[k+1].time);
56
-
57
- data[k].se = 1, data[k+1].se = -1, k += 2;
58
-
59
- }
60
-
61
- qsort(data, k, sizeof *data, comp);
62
-
63
- int m = 0, max = 0;
64
-
65
- for (int i = 0; i < k; i++)
51
+ cout << test << endl;
66
-
67
- if ((m += data[i].se) > max) max = m;
68
-
69
- printf("%d\n", max);
70
52
 
71
53
  }
72
54