Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <malloc.h>
- void order_arr(int* , int);
- int search(int* , int , int );
- void order_arr(int *arr , int len){
- int i, b = 0;
- for(i= 0;b<len;i++){
- if(arr[b] >= arr[i] && b == 0 ){
- int t = arr[b];
- arr[b] = arr[i];
- arr[i] = t;
- } else if(arr[b] <= arr[i] && b != 0){
- int t = arr[b];
- arr[b] = arr[i];
- arr[i] = t;
- }
- if(i == len-1){
- i = 0;
- b++;
- }
- }
- }
- int search(int *arr , int find , int len){
- int a = len - 1;
- int b = 0 , c = a , d;
- while( find != arr[c]){
- c = a/2 ;
- if(find > arr[c]){
- c =(int) a + (a/2);
- a =(int) c;
- } else if(find < arr[c]){
- c =(int) a - (a/2);
- a = (int) c;
- } else if(c == (len - 1)/a && find != arr[len-1]){
- return -1;
- break;
- }
- }
- return c + 1;
- }
- main(){
- int len ;
- int i = 0;
- printf("Specificare il numero di dati: ");
- scanf("%d" , &len);
- int *arr = (int *) malloc(sizeof(int)* len );
- printf("Inserire i dati\n");
- while(i < len){
- scanf("%d" , &arr[i]);
- i++;
- }
- order_arr(arr , len);
- printf("Inserire l'intero da cercare: ");
- int find ;
- scanf("%d" , &find );
- int f = search(arr , find , len);
- if(f != 0){
- printf("\n%d" , f);
- } else {
- printf("Numero non trovato");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement