@@ -45,11 +45,11 @@ Array *array_create_and_read(FILE *input)
45
45
return arr;
46
46
}
47
47
48
- void task1 (void )
48
+ void task1 (FILE *input )
49
49
{
50
50
size_t n;
51
51
Array *arr = NULL ;
52
- if (scanf ( " %lu" , &n) < 1 ) throw std::runtime_error (" Failed to read size" );
52
+ if (fscanf (input, " %lu" , &n) < 1 ) throw std::runtime_error (" Failed to read size" );
53
53
arr = array_create (n);
54
54
for (size_t index {0 }; index < n; ++index ) array_set (arr, index , rand () % 100 );
55
55
@@ -62,11 +62,11 @@ void task1(void)
62
62
array_delete (arr);
63
63
}
64
64
65
- void task2 (void )
65
+ void task2 (FILE *input )
66
66
{
67
67
size_t size_arr;
68
68
Array *arr = NULL ;
69
- if (scanf ( " %lu" , &size_arr) < 1 ) throw std::runtime_error (" Failed to read size" );
69
+ if (fscanf (input, " %lu" , &size_arr) < 1 ) throw std::runtime_error (" Failed to read size" );
70
70
arr = array_create (size_arr);
71
71
for (size_t index {0 }; index < size_arr; ++index ) array_set (arr, index , rand () % 100 );
72
72
qsort (arr, 0 , size_arr - 1 );
@@ -100,19 +100,21 @@ void task2(void)
100
100
101
101
int main (int argc, char **argv)
102
102
{
103
- if (argc > 1 ){
104
- Array *arr = NULL ;
105
- FILE *input = fopen (argv[1 ], " r" );
106
- arr = array_create_and_read (input);
107
- array_delete (arr);
108
- /* Create another array here */
109
- arr = array_create_and_read (input);
110
- array_delete (arr);
111
- fclose (input);
112
- }
113
-
114
- task1 ();
115
- task2 ();
103
+ /*
104
+ Не совсем понял откуда берётся с клавиатуры или из файла. В задание сказано из файла, но если запускать тесты, то будет
105
+ вызвано исключение runtime_error (в случае если мы ждем числа с клавиатуры)
106
+ */
107
+ Array *arr = NULL ;
108
+ FILE *input = fopen (argv[1 ], " r" );
109
+ arr = array_create_and_read (input);
110
+ array_delete (arr);
111
+ /* Create another array here */
112
+ arr = array_create_and_read (input);
113
+ array_delete (arr);
114
+
115
+ task1 (input);
116
+ task2 (input);
116
117
118
+ fclose (input);
117
119
return 0 ;
118
120
}
0 commit comments