1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
#include <stdio.h>
#include <stdlib.h>
typedef struct couple {
int x;
int y;
}Couple;
Couple rechercherX (int nb_colonnes, int nb_lignes, int x, int tab[][nb_lignes], int* d, int* f){
int i, j, m;
Couple position;
position.x=0;
position.y=0;
if ((nb_lignes==1)&&(nb_colonnes==1)){
if (tab[0][0]==x){
position.x=1;
position.y=1;
return position;
}
}
if ((nb_lignes!=1)&&(nb_colonnes!=1)){
i=nb_colonnes;
j=nb_lignes/2;
if (tab[i][j]==x){
position.x=i;
position.y=j;
return position;
}else{
if (tab [i][j]>x){
rechercherX (nb_colonnes, j, x, tab, *(tab), *(tab+(nb_colonnes*j)));
}else{
rechercherX (nb_colonnes, nb_lignes-j, x, tab, *(tab+(j*nb_colonnes)+1), *(tab+(nb_colonnes*nb_colonnes)));
}
}
}
if (nb_lignes==1){
m=nb_colonnes/2;
if (tab [m][j]==x){
position.x=m;
position.y=j;
return position;
}else{
if (tab [m][j]<x){
rechercherX (nb_colonnes-m-1, 1, x, tab, *(tab+(j*nb_colonnes+m+1)), *(tab+(nb_colonnes*j)));
}else{
rechercherX (m-1, 1, x, tab, *(tab+(j*nb_colonnes)+1), *(tab+(j*nb_colonnes+m)));
}
}
}
return position;
} |
Partager