TP 13 exo1: Implement array resizing
[TD_C.git] / TP_13 / exo1 / src / main.c
CommitLineData
e4001676 1#include <stdlib.h>
eddc018d
JB
2#include <stdio.h>
3
884e9557
JB
4#include "array.h"
5#include "utils.h"
34f864c6 6#include "io.h"
884e9557 7
eddc018d 8int main() {
884e9557 9 int* tab = NULL;
cfdd46d2 10 unsigned tab_size = 0;
475ee86d
JB
11 int errno = 0;
12 int choice = 0;
cfdd46d2 13
475ee86d 14 printf("=== Saisie initiale ===\n\n");
cfdd46d2 15 tab = prompt_array(tab, &tab_size);
eddc018d 16
475ee86d
JB
17 do {
18 display_choice_menu();
19 errno = prompt_value("Choix?", &choice);
20 handle_prompt_error(errno);
59941dc1
JB
21 if (1 > choice || 8 < choice) {
22 printf("\nFaire un choix compris entre 1 et 8\n");
475ee86d
JB
23 continue;
24 }
25 switch (choice) {
26 case 1:
27 tab = do_concat(tab, &tab_size);
28 break;
29 case 2:
30 do_sort(tab, tab_size);
31 break;
32 case 3:
33 display_array(tab, tab_size);
34 break;
35 case 4:
36 do_count(tab, tab_size);
37 break;
889d5862
JB
38 case 5:
39 printf("\nLe nombre d'entiers pairs dans le tableau est %d\n", count_tab_criteria(tab, tab_size, is_even));
40 break;
41 case 6:
42 printf("\nLe nombre d'entiers impairs dans le tableau est %d\n", count_tab_criteria(tab, tab_size, is_odd));
43 break;
59941dc1
JB
44 case 7:
45 do_resize(tab, &tab_size);
46 break;
475ee86d
JB
47 default:
48 /* do nothing, unused code path */
49 break;
50 }
59941dc1 51 } while (choice != 8);
34f864c6
JB
52
53 free_tab(tab);
e4001676 54 exit(EXIT_SUCCESS);
eddc018d 55}