Recherche séquentielle d'un élément dans un tableau
Objectifs:
- Manipuler les tableaux à une seule dimension.
- Programmer toutes les variantes de recherche d'un élément dans un tableau.
Énoncé:
Créer des programmes en C qui permettent de chercher une valeur X (entré au clavier) dans un tableau d'entiers avec les possibilités suivantes:
1) Déterminer si l'entier X appartient au tableau T.
Entrer la taille du tableau: 4
Remplissage du tableau:
Entrer l'element 1 :6
Entrer l'element 2 :3
Entrer l'element 3 :7
Entrer l'element 4 :55
Entrer la valeur a chercher: 7
La valeur 7 existe dans le tableau.
Entrer la taille du tableau: 3
Remplissage du tableau:
Entrer l'element 1 :6
Entrer l'element 2 :3
Entrer l'element 3 :7
Entrer la valeur a chercher: 2
La valeur 2 n'existe pas dans le tableau.
2) Compter le nombre d'occurrence de l'entier X.
Entrer la taille du tableau: 5
Remplissage du tableau:
Entrer l'element 1 :8
Entrer l'element 2 :5
Entrer l'element 3 :8
Entrer l'element 4 :4
Entrer l'element 5 :8
Entrer la valeur a chercher: 8
Le nombre d'occurrence de la valeur 8 est 3
3) Afficher la première position de l'entier X s'il existe ou le message "Élément n'existe pas" dans le cas contraire.
Entrer la taille du tableau: 4
Remplissage du tableau:
Entrer l'element 1 :9
Entrer l'element 2 :7
Entrer l'element 3 :3
Entrer l'element 4 :7
Entrer la valeur a chercher: 7
La première position de la valeur 7 est: 2
4) Afficher la dernière position de l'entier X s'il existe ou le message "Élément n'existe pas" dans le cas contraire.
Entrer la taille du tableau: 4
Remplissage du tableau:
Entrer l'element 1 :9
Entrer l'element 2 :7
Entrer l'element 3 :9
Entrer l'element 4 :2
Entrer la valeur a chercher: 9
La dernière position de la valeur 9 est: 3
5) Afficher toutes les positions de l'entier X s'il existe ou le message "Élément n'existe pas" dans le cas contraire.
Entrer la taille du tableau: 5
Remplissage du tableau:
Entrer l'element 1 :3
Entrer l'element 2 :4
Entrer l'element 3 :3
Entrer l'element 4 :3
Entrer l'element 5 :2
Entrer la valeur a chercher: 3
Les positions de la valeur 3 sont:
1
3
4
1) Déterminer si l'entier X appartient au tableau T:
//Programme : Recherche d'un élément dans un tableau //Auteur : IDMANSOUR //Copyright : Exelib.net #include<stdio.h> main() { int n, i, T[30], x, e; printf("Entrer la taille du tableau: "); scanf("%d",&n); printf("\nRemplissage du tableau: \n"); for(i=0; i<n; i++){ printf("Entrer l'element %d :", i+1); scanf("%d",&T[i]); } printf("\nEntrer la valeur a chercher: "); scanf("%d",&x); e = 0; for(i=0; i<n; i++){ if(T[i] == x){ e = 1; break; } } if(e == 0) printf("\nLa valeur %d n'existe pas dans le tableau.", x); else printf("\nLa valeur %d existe dans le tableau.", x); }
2) Compter le nombre d'occurrence:
//Programme : Nombre d'occurrences d'un élément dans un tableau //Auteur : IDMANSOUR //Copyright : Exelib.net #include<stdio.h> main() { int n, i, T[30], x, c; printf("Entrer la taille du tableau: "); scanf("%d",&n); printf("\nRemplissage du tableau: \n"); for(i=0; i<n; i++){ printf("Entrer l'element %d :", i+1); scanf("%d",&T[i]); } printf("\nEntrer la valeur a chercher: "); scanf("%d",&x); c = 0; for(i=0; i<n; i++){ if(T[i] == x){ c = c + 1; } } if(c == 0) printf("\nLa valeur %d n'existe pas dans le tableau.", x); else printf("\nLe nombre d'occurrence de la valeur %d est %d", x, c); }
3) Afficher la première position:
//Programme : Première position d'un élément dans un tableau //Auteur : IDMANSOUR //Copyright : Exelib.net #include<stdio.h> main() { int n, i, T[30], x, p; printf("Entrer la taille du tableau: "); scanf("%d",&n); printf("\nRemplissage du tableau: \n"); for(i=0; i<n; i++){ printf("Entrer l'element %d :", i+1); scanf("%d",&T[i]); } printf("\nEntrer la valeur a chercher: "); scanf("%d",&x); p = -1; for(i=0; i<n; i++){ if(T[i] == x){ p = i; break; } } if(p == -1) printf("\nLa valeur %d n'existe pas dans le tableau.", x); else printf("\nLa premiere position de la valeur %d est: %d", x, p + 1); }
Cette solution utilise directement le compteur i de la boucle pour avoir la première position de l'élément X.
for(i=0; i<n; i++){ if(T[i] == x){ break; } } if(i == n) printf("\nLa valeur %d n'existe pas dans le tableau.", x); else printf("\nLa premiere position de la valeur %d est: %d", x, i + 1); }
4) Afficher la dernière position:
Pour avoir la dernière position il suffit d'enlever l'instruction break.
p = -1; for(i=0; i<n; i++){ if(T[i] == x){ p = i; } }
5) Afficher toutes les positions:
//Programme : Toutes les positions d'un élément dans un tableau //Auteur : IDMANSOUR //Copyright : Exelib.net #include<stdio.h> main() { int n, i, T[30], x, p[30], c; printf("Entrer la taille du tableau: "); scanf("%d",&n); printf("\nRemplissage du tableau: \n"); for(i=0; i<n; i++){ printf("Entrer l'element %d :", i+1); scanf("%d",&T[i]); } printf("\nEntrer la valeur a chercher: "); scanf("%d",&x); c = 0; for(i=0; i<n; i++){ if(T[i] == x){ p[c] = i; c = c + 1; } } if(c == 0) printf("\nLa valeur %d n'existe pas dans le tableau.", x); else{ printf("\nLes positions de la valeur %d sont:\n", x); for(i=0; i<c; i++){ printf("%d\n",p[i] + 1); } } }