C/C++

Язык Си. Сортировка и поиск элементов массива

Я только изучаю Си, скажите где я сделал ошибку, он бесконечно запрашивает число которое нужно найти?

#include <stdio.h>

int main(){

int n, arr[100], c, m, q, last, first, middle, j, i, x, f;

printf("Введите количество элементов: \n");
scanf("%d", &n);
while (n < 0){
printf("Не вводите число меньше 0\nПовторите попытку:\n");
scanf("%d", &n);

}
printf("Введите целые числа %d:\n", n);
for (c = 0; c < n; c++)
scanf("%d",&arr[c]);

for(m = 0; m < n; m++){
for (i = 0; i < n; i++){
for(j = 0; j < i; j++){
if( arr[j] > arr[j + 1]){
q = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = q;
}
}
}
}

printf("Введите число которое нужно найти:\n");
scanf("%d", &x);

first = 0;
last = n - 1;
middle = last /2;


if(middle == x)
printf("Ваше число %d найдено", x);

else if(first == x)
printf("Ваше число %d найдено", first);

else if(last == x)
printf("Ваше число %d найдено", last);

while(middle < x) {
last = middle;
middle = last /2;
}

}
 #include "stdio.h"



void printArray(const int *arr, int N){

for(int i = 0; i < N; i++)

printf("%d ", *(arr + i));

}



void swap(int *a, int *b){

int t = *a;

*a = *b;

*b = t;

}



void bubbleSort(const int *arr, int N){

for(int i = 0; i < N; i++)

for(int j = 0; j < N - i - 1; j++)

if(*(arr + j) > *(arr + j + 1))

swap(&(*(arr + j)), &(*(arr + j + 1)));

}



int binSearch(const int *arr, int N, int val){

int l = 0, r = N - 1;

while(l val)

r = mid - 1;

else if(*(arr + mid) < val)

l = mid + 1;

else

return mid;

}

return -1;

}



int main(){

int n, x;

printf("Input size of the array:\n");

scanf("%d", &n);

int a[n];

printf("Input elements of the array:\n");

for(int i = 0; i < n; i++)

scanf("%d", &a[i]);

printf("Initial array:\n");

printArray(a, n);

bubbleSort(a, n);

printf("\nSorted array:\n");

printArray(a, n);

printf("\nInput value is needed to be found:\n");

scanf("%d", &x);

int index = binSearch(a, n, x);

if(index < 0)

printf("There is no such an element in the array");

else

printf("Element has been found. It is at the position # %d in the sorted array", index);

}
Александр Павленко
Александр Павленко
12 614
Лучший ответ
Леха Панкратов http://justnotepad.com/get/b5aff6385e7ebff6ff50ec350b169dc4

Компилятор показывает две ошибки в вашем коде, тут я их скопировать и вставить не могу, изза ограничения по количеству символов, пожалуйста перейдите по ссылке и посмотрите там, если вам не сложно.
P.S. Пароль от заметки " 12345678 "
Леха Панкратов Спасибо большое!
У вас кусок программы, который ищет методом половинного деления, мало того что находится вне цикла (который в самом конце бесконечный) но даже не обращается к массиву. Вопрос знатокам - где он ищет? Минута пошла...