bonjour , je suis etudiant en mécanique et la programmtion c est embetant pour moi.
J ai un probleme sur mon programme main().
Je n arrive pas a faire au fur et à mesure pouvez vous m aider s il vous plait merci d'avance
Voila l'enonce
On désire construire un tableau d’au plus MAX entiers triés à partir d’un dialogue avec l’utilisateur.
La particularité de ce tri est qu’il va se faire au fur et à mesure de la saisie des valeurs.
Exemple : l’utilisateur rentre 24, le tableau vide devient : 24 puis l’utilisateur rentre 20, le tableau devient : 20 24 puis l’utilisateur rentre 22, le tableau devient : 20 22 24 etc… 1)
Ecrire la fonction recherchePosition() qui retourne la position que doit prendre l’entier dans le tableau (le tableau est trié mais partiellement rempli). Exemple : pour le tableau : 20 22 24 et l’entier 21, la fonction recherchePosition retourne la valeur 1 2)
Ecrire la fonction insereEntier() qui insère un entier dans le tableau à la position spécifiée. Exemple: insérer l’entier 21 à la position 1 dans le tableau : 20 22 24 modifie le tableau de la façon suivante : 20 21 22 24 3)
Ecrire la fonction principale main() qui invite l’utilisateur à saisir les nombres entiers, construit et affiche le tableau trié au fur et à mesure de la lecture des nombres. On veillera a ne pas dépasser la capacité maximale du tableau.
Voila mon programme
#define MAX 10
#include <stdio.h>
int recherchePosition(int tab[],int n ) /* n est le nombre de valeurs entrées dans le tab */
{
int i=0;
while (n<=tab[i] && i<MAX)
i++;
printf("%d", i);
return i;
}
void afficherTableau(int tab[]) /* y est le nombre de valeurs entrées dans le tab u*/
{
int i=0;
for (i = 0; i<MAX; i++) {
printf("tab[%d]=%d\n",i,tab[i]);
}
}
void insereEntier ( int tab[],int n, int p) // p position (i de rech) , n nombre qu'on veut insérer
{
int pos ;
pos=recherchePosition ( tab, n) ;
for(p=pos;p<MAX;p++)
tab[p]=tab[p-1];
tab[pos]=n;
}
void main ()
{
int tab[MAX];/*tableau*/
int n; /*valeur du tableau*/
int p;/*incrementation*/
int i ;/*adresse du tableau*/
char r;
int pos;
int recherchePosition(int tab[],int n );
for(i=0;i<MAX;i++) /*on initialise le tableau*/
tab[i]=0;
afficherTableau(tab);
do {
printf(" entrez une valeur:");
scanf("%d",&n);
pos=recherchePosition (tab, n);
insereEntier (tab, n,pos);
for (p=0;p<n;p++){
printf ("%d\n",tab[p]);}
printf("voulez vous continuer o ou n");
scanf("%c",&r);
}
while (r=='o');
}