Les pointeurs

mast20 Messages postés 14 Statut Membre -  
mast20 Messages postés 14 Statut Membre -
svp pouvez vous m aider a faire cette exercice en c :
1-ecrire une fct qui remplit et retourne un tableau dynamique de n entiers aleatoirement en utilisant la fct predefinie rand().
2-ecrire une fct qui remplit et retourne manullement un tableau dynamique
3-une fct qui affiche le tableau
4-une fct qui cherche si un element existe dans le tableau
5-fct qui effectue le tribull
et merci d avance

2 réponses

  1. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102
     
    Bonjour,
    Essaie d'écrire quelque chose. Nous pourrons alors t'aider.
    Pour le -1- je te propose le prototype de la fonction
    int *creeTableauDynamique( int n );
    0
    1. mast20 Messages postés 14 Statut Membre
       
      int *creeTableauDynamique( int n ){
      int i , *T=Null;
      T=(int*)malloc(n*sizeof(int);
      for(i=0;i<n;i++) {
      T[i]=rand();
      }
      return T;
      }
      void remplissage_manuelle(int *T,int n)
      {
      int i , *T=Null;
      T=(int*)malloc(n*sizeof(int));
      for(i=0;i<n;i++)
      {
      printf("donner un entier : ");
      scanf("%d",T[i]);
      }
      }

      void affichage(int *T,int n)
      {
      int i ;
      for(i=0;i<n;i++)
      {
      printf("%d",*T[i]);
      }

      }

      int rech_seq(int *T,int n,int x)
      {
      int i;
      for(i=0;i<n;i++)
      {
      if(*T[i]==x) return i;
      }

      return -1 (ca veut dire l entier a rechercher n existe pas)
      }

      void tribulle(int *T,int n)
      {
      int i,j,aux;
      for(j=0;j<n-1;j++)
      {
      for(i=n-1;i<=1;i--)
      {
      if(T[i-1]>T[i])
      {
      aux=*T[i];
      • T[i]=*T[i-1];
      • T[i-1]=aux;

      }
      }
      }
      }

      si quelqu'un peut me corriger les fautes que j ai commis et merci :)
      0
  2. Utilisateur anonyme
     
    Bonsoir.

    J'éspère avoir bien compris ce que tu voulais faire, sinon je m'en excuse, voici les erreurs que j'ai pu relever :

    int *creeTableauDynamique(int n)
    {
        int i, *T = NULL; //La syntaxe exacte est NULL en majuscules
        T = (int*)malloc(n*sizeof(int)); //Attention à la parenthèse oubliée ici
        for(i = 0; i < n; i++)
        {
            T[i] = rand();
        }
    return T;
    }
    
    void remplissage_manuelle(int *T,int n)
    {
        int i; //Tu n'as pas besoin de redéclarer *T, c'est ce que reçoit ta fonction
        T = (int*)malloc(n*sizeof(int));
        for(i = 0; i < n; i++)
        {
            printf("donner un entier : ");
            scanf("%d", T[i]);
        }
    }
    
    void affichage(int *T,int n)
    {
        int i;
        for(i = 0; i < n; i++)
        {
            printf("%d", T[i]); //Ne met pas de * devant T, c'est le tableau que tu veux afficher (*)
        }
    
    }
    
    int rech_seq(int *T, int n, int x)
    {
        int i;
        for(i = 0; i < n; i++)
        {
            if(T[i] == x) return i; //Même remarque que la précedente (*)
        }
    
    return -1; //Attention au point virgule ; ici
    }
    
    void tribulle(int *T, int n)
    {
        int i, j, aux;
        for(j = 0; j < n-1; j++)
        {
            for(i = n-1; i <= 1; i--)
            {
                if(T[i-1] > T[i])
                {
                    aux = T[i]; //Même remarque (*)
                    T[i] = T[i-1]; //Pareil (*)
                    T[i-1] = aux;
                }
            }
        }
    }

    0
    1. mast20 Messages postés 14 Statut Membre
       
      merci beaucoup :)
      0