Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int cont(int N)
- {
- do
- {
- printf("\nentrer la taille");
- scanf("%d",&N);
- }while((N<1)||(N>10));
- return(N);
- }
- void remplir_tab(int N, int x[10])
- {
- int i;
- for (i=0;i<N;i++)
- {
- printf("\ndonner l'entier %d ",i+1);
- scanf("%d",&*(x+i));
- }
- }
- void affiche_tab(int N, int x[10])
- {
- int i;
- for (i=0;i<N;i++)
- {
- printf("\nl'entier %d est %d ",i+1,x[i]);
- }
- }
- void chercher_occurences(int N,int x[10],int y[10],int *w)//*w permet de connaitre la taille du nouveaux tableaux
- {
- int i,j,v;
- printf("\nentrer v");
- scanf("%d",&v);
- for (i=0,j=0;i<N;i++)
- {
- if (x[i]==v)
- {
- *(y+j)=i;
- j++;
- }
- }
- *w=j;
- }
- void efface_occurances(int *N,int x[10])//N est passer par adresse pour permetre de tasser
- {
- int i,j,v,c=0;
- printf("\nentrer v");
- scanf("%d",&v);
- do
- {
- c=0;
- for (i=0,j=0;i<*N;i++)
- {
- if (x[i]==v)
- {
- for(j=i;j<*N;j++)
- {
- *(x+j)=*(x+(j+1));
- }
- *N=*N-1;
- c=1;
- }
- }
- }while(c==1);
- }
- void fusion(int k1,int k2,int x[10],int y[10],int z[20])//permet de fusionner deux tableaux triƩes
- {
- int i=0,j=0,k=0;
- while((i<k1)&&(j<k2))
- {
- while(x[i]<=y[j])
- {
- *(z+k)=x[i];
- k++;
- i++;
- }
- while(y[j]<=x[i])
- {
- *(z+k)=y[j];
- k++;
- j++;
- }
- }
- if (i<k1)
- {
- for (i=i;i<k1;i++,k++)
- {
- *(z+k)=x[i];
- }
- }
- if (j<k2)
- {
- for (j=j;j<k2;j++,k++)
- {
- *(z+k)=y[j];
- }
- }
- }
- void tri_coroissant(int x[10],int N)
- {
- int i,j,m,p;
- for(i=1;i<N;i++)
- {
- m=x[i];
- j=i;
- while((j>0)&&(x[j-1]>m))
- {
- *(x+j)=x[j-1];
- j--;
- }
- *(x+j)=m;
- }
- }
- void tri_decoroissant(int x[10],int N)
- {
- int i,j,m,p;
- for(i=1;i<N;i++)
- {
- m=x[i];
- j=i;
- while((j>0)&&(x[j-1]<m))
- {
- *(x+j)=x[j-1];
- j--;
- }
- *(x+j)=m;
- }
- }
- void remp_fus(int N, int x[10])
- {
- int i;
- printf("\ndonner l'entier 1 ");
- scanf("%d",&*(x));
- for (i=1;i<N;i++)
- {
- do
- {
- printf("\ndonner l'entier %d ",i+1);
- scanf("%d",&*(x+i));
- }
- while(x[i-1]>x[i]);
- }
- }
- int main()
- {
- int n,t[10],v,n2;
- static int T[10];
- int ta[10],tb[10],tr[20],l1,l2;
- printf("########################################\n#\n#\n#\tTp Info 4: Les fonctions \n#\n########################################");
- printf("\nVeuillez choisir le numero de l'operation voulue SVP ... \n########################################");
- printf("\n1.Chercher l'occurance d'un entier");
- printf("\n2.Efaccer l'occurance d'un entier");
- printf("\n3.Fusionner deux tableaux triees");
- printf("\n4.Trier un tableaux dans l'ordre croissant");
- printf("\n5.Trier un tableaux dans l'ordre decroissant");
- printf("\n########################################\n");
- int c;
- scanf("%d",&c);
- if (c==1)
- {
- n=cont(n);
- remplir_tab(n,t);
- chercher_occurences(n,t,T,&n2);
- affiche_tab(n2,T);
- }
- else
- {
- if(c==2)
- {
- n=cont(n);
- remplir_tab(n,t);
- efface_occurances(&n,t);
- affiche_tab(n,t);
- }
- else
- {
- if(c==3)
- {
- printf("\nTableau 1");
- l1=cont(l1);
- printf("\nTableau 2");
- l2=cont(l2);
- printf("\nTableau 1");
- remp_fus(l1,ta);
- printf("\nTableau 2");
- remp_fus(l2,tb);
- printf("\nTableau Fusionne");
- fusion(l1,l2,ta,tb,tr);
- affiche_tab(l1+l2,tr);
- }
- else
- {
- if(c==4)
- {
- n=cont(n);
- remplir_tab(n,t);
- tri_coroissant(t,n);
- affiche_tab(n,t);
- }
- else
- {
- if(c==5)
- {
- n=cont(n);
- remplir_tab(n,t);
- tri_decoroissant(t,n);
- affiche_tab(n,t);
- }
- }
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment