Advertisement
ForcaDz

TP11-Exercice3

Apr 3rd, 2023
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.74 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define FALSE 0
  6. #define TRUE 1
  7. #define MAX 49
  8. #define TAILLE 6
  9.  
  10.  
  11.  
  12. /*---------------------------------------------------------------------------Question 1-----------------------------------------------------------------------------------------*/
  13. int ajouter_tab(int tab[] , int *n , int val)
  14. {
  15.  
  16.     int i;
  17.  
  18.     for ( i = 0 ; i < *n && tab[i] < val ; i++)
  19.     {
  20.         if (tab[i] == val)
  21.         {
  22.             return FALSE;
  23.         }
  24.     }
  25.  
  26.     int j;
  27.  
  28.     for( j = *n ; j >= i ; j--)
  29.     {
  30.         tab[j] = tab[j-1];
  31.     }
  32.  
  33.     tab[i] = val;
  34.  
  35.     *n++;
  36.  
  37.     return TRUE;
  38. }
  39.  
  40.  
  41.  
  42.  
  43. /*---------------------------------------------------------------------------Question 2-----------------------------------------------------------------------------------------*/
  44. void Tri_Croissant(int tab[] , int taille)
  45. {
  46.     int i;
  47.     int j;
  48.     int temp;
  49.  
  50.    
  51.     for ( i = 0 ; i < taille ; i++)
  52.     {
  53.         for(j = i + 1 ; j < taille ; j++)
  54.         {
  55.             if(tab[i] > tab[j])
  56.             {
  57.                 temp = tab[i];
  58.                 tab[i] = tab[j];
  59.                 tab[j] = temp;
  60.             }
  61.         }
  62.     }
  63.  
  64. }
  65.  
  66.  
  67. void init(int tab[], int taille)
  68. {
  69.     srand(time(NULL));
  70.     int i;
  71.     int j;
  72.     int trv;
  73.  
  74.     for ( i = 0 ; i < taille ; i++)
  75.     {
  76.         do
  77.         {
  78.             tab[i] = rand() % (MAX + 1);
  79.             trv = 0;
  80.             for ( j = 0 ; j < i ; j++ )
  81.             {
  82.                 if(tab[i] == tab[j])
  83.                 {
  84.                     trv = 1;
  85.                 }
  86.             }
  87.         } while (trv);      
  88.     }
  89.  
  90.     Tri_Croissant(tab,taille);
  91. }
  92.  
  93.  
  94.  
  95.  
  96. /*---------------------------------------------------------------------------Question 3-----------------------------------------------------------------------------------------*/
  97. void lire_tab(int tab[] , int taille)
  98. {
  99.     int i;
  100.     int j;
  101.     int trv;
  102.    
  103.     for ( i = 0 ; i < taille ; i++)
  104.     {
  105.  
  106.         do
  107.         {
  108.             trv = 0;
  109.        
  110.             printf("saisisr la %d valeur du tableau : \n", i+1);
  111.             if(scanf("%d",&tab[i]) !=1 )
  112.             {
  113.                 printf("Erreur a la saisi \n");
  114.                 exit(1);
  115.             }
  116.             else
  117.             {
  118.                 for(j = 0 ; j < taille ; j++)
  119.                 {
  120.                     if(tab[i] == tab[j])
  121.                     {
  122.                         trv = 1 ;
  123.                     }
  124.                 }
  125.             }
  126.  
  127.         } while (trv && (tab[i] < 1 || tab[i] > 49) );
  128.     }
  129.  
  130.     Tri_Croissant(tab,taille);
  131.  
  132. }
  133.  
  134.  
  135.  
  136. /*-----------------------------------------------------Question 4-----------------------------------------------------------------------------------------*/
  137. int compare_tab(int tab1[] , int tab2[] , int n)
  138. {
  139.     Tri_Croissant(tab1,n);
  140.     Tri_Croissant(tab2,n);
  141.  
  142.     int i;
  143.  
  144.     for( i = 0 ; i < n ; i++)
  145.     {
  146.         if(tab1[i] != tab2[i])
  147.         {
  148.             return FALSE;
  149.         }
  150.     }
  151.  
  152.     return TRUE;
  153. }
  154.  
  155.  
  156.  
  157. void affiche_tab(int tab[] , int taille)
  158. {
  159.     int i;
  160.  
  161.     for( i = 0 ; i < taille ; i++)
  162.     {
  163.         printf("%d\t",tab[i]);
  164.     }
  165.  
  166.     printf("\n");
  167. }
  168.  
  169.  
  170.  
  171.  
  172.  
  173. int main(void)
  174. {
  175.  
  176.     int tab1[TAILLE];
  177.     int tab2[TAILLE];
  178.  
  179.     /*Génération d'un tableau de 6 case aléatoire entre [1;49] */
  180.     init(tab1,TAILLE);
  181.     affiche_tab(tab1,TAILLE);
  182.  
  183.     /*Remplissage d'un second tableau par l'ulitilsateur entre [1;49]*/
  184.     lire_tab(tab2,TAILLE);
  185.     affiche_tab(tab2,TAILLE);
  186.  
  187.     /*Comparaison des 2 tableaux*/
  188.     int a = compare_tab(tab1,tab2,TAILLE);
  189.     if(a)
  190.     {
  191.         printf("TRUE \n");
  192.     }
  193.     else
  194.     {
  195.         printf("FALSE \n");
  196.     }
  197.  
  198.     return 0;
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement