1
1
#include < cstdio>
2
2
#include < cstdlib>
3
3
#include < ctime>
4
+ #include < stdexcept>
4
5
#include " array.h"
5
6
6
7
void qsort (Array *arr, size_t start, size_t end){
@@ -31,14 +32,14 @@ void qsort(Array *arr, size_t start, size_t end){
31
32
Array *array_create_and_read (FILE *input)
32
33
{
33
34
int n;
34
- fscanf (input, " %d" , &n);
35
+ if ( fscanf (input, " %d" , &n) < 1 ) throw std::invalid_argument ( " Failed to read size " );
35
36
/* Create array */
36
37
Array *arr = array_create (n);
37
38
/* Read array data */
38
39
for (int i = 0 ; i < n ; ++i)
39
40
{
40
41
int x;
41
- fscanf (input, " %d" , &x);
42
+ if ( fscanf (input, " %d" , &x) < 1 ) throw std::invalid_argument ( " Failed to read number " );
42
43
array_set (arr, i, x);
43
44
}
44
45
return arr;
@@ -48,7 +49,7 @@ void task1(void)
48
49
{
49
50
size_t n;
50
51
Array *arr = NULL ;
51
- scanf (" %lu" , &n);
52
+ if ( scanf (" %lu" , &n) < 1 ) throw std::runtime_error ( " Failed to read size " );
52
53
arr = array_create (n);
53
54
for (size_t index {0 }; index < n; ++index ) array_set (arr, index , rand () % 100 );
54
55
@@ -65,7 +66,7 @@ void task2(void)
65
66
{
66
67
size_t size_arr;
67
68
Array *arr = NULL ;
68
- scanf (" %lu" , &size_arr);
69
+ if ( scanf (" %lu" , &size_arr) < 1 ) throw std::runtime_error ( " Failed to read size " );
69
70
arr = array_create (size_arr);
70
71
for (size_t index {0 }; index < size_arr; ++index ) array_set (arr, index , rand () % 100 );
71
72
qsort (arr, 0 , size_arr - 1 );
0 commit comments