Les pointeurs

mast20 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
mast20 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -
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

Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
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
mast20 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
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
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
mast20 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup :)
0