Advertisement
Derik_hacker

Untitled

May 24th, 2024
455
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.05 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #define MAX_TAILLE_MATR 7
  6.  
  7. void selectionsort(int arr[], int t_size);
  8.  
  9. int main(int argc, char** argv) {
  10.     int *matricola = NULL;
  11.     int *esiti = NULL;
  12.     int conta = 0;
  13.     int conta1 = 0;
  14.  
  15.     if (argc != 3) {
  16.         printf("Il faut exactement deux paramètres\n");
  17.         return -1;
  18.     }
  19.  
  20.     FILE* fp = fopen(argv[1], "r");
  21.     FILE* fp1 = fopen(argv[2], "r");
  22.  
  23.     if (fp == NULL || fp1 == NULL) {
  24.         printf("Erreur lors de l'ouverture des fichiers\n");
  25.         return -1;
  26.     }
  27.  
  28.     matricola = malloc(sizeof(int));
  29.     esiti = malloc(sizeof(int));
  30.  
  31.     if(matricola == NULL || esiti == NULL) {
  32.         printf("Erreur lors de l'allocation de la mémoire\n");
  33.         return -1;
  34.     }
  35.  
  36.     while (fscanf(fp, "%d", &matricola[conta]) != EOF) {
  37.         conta++;
  38.         matricola = realloc(matricola, (conta + 1) * sizeof(int));
  39.  
  40.         if (matricola == NULL){
  41.             printf("Erreur lors de la reallocation de la mémoire\n");
  42.             return -1;
  43.         }
  44.        
  45.        
  46.     }
  47.  
  48.    
  49.     while (fscanf(fp1, "%d", &esiti[conta1]) != EOF) {
  50.         conta1++;
  51.         esiti = realloc(esiti, (conta1 + 1) * sizeof(int));
  52.  
  53.         if (esiti == NULL){
  54.             printf("Erreur lors de la reallocation de la mémoire\n");
  55.             return -1;
  56.         }
  57.        
  58.     }
  59.  
  60.     fclose(fp);
  61.     fclose(fp1);
  62.  
  63.     selectionsort(matricola, conta);
  64.     selectionsort(esiti, conta1);
  65.  
  66.    
  67.     printf("Matricules et résultats triés :\n");
  68.     for (int i = 0; i < conta && i < conta1; i++) {
  69.         printf("%d   %d\n", matricola[i], esiti[i]);
  70.     }
  71.  
  72.    
  73.     free(matricola);
  74.     free(esiti);
  75.  
  76.     return 0;
  77. }
  78.  
  79. void selectionsort(int arr[], int t_size) {
  80.     int temp;
  81.     for (int i = 0; i < t_size - 1; i++) {
  82.         for (int j = i + 1; j < t_size; j++) {
  83.             if (arr[j] > arr[i]) {
  84.                 temp = arr[i];
  85.                 arr[i] = arr[j];
  86.                 arr[j] = temp;
  87.             }
  88.         }
  89.     }
  90. }
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement