برنامه ای بنویسید که 2000 عدد بین 10000 و 20000 به صورت راندوم تولید کند و و در تابعی آنها را مرتب کند و عددی از کاربر گرفته و در تابعی دیگر بین اعداد به دنبال آن بگردد و در صورت وجود اعلام کند و در صورتیکه که کاربر موافق بود در تابعی دیگر همه اعداد را چاپ کند
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "stdlib.h"
#include "time.h"
using namespace std;
//alidoran
void sorting(int[], int);
void search(int[], int, int,int);
void print(int[], int);
int main() {
int x[2000], size = 0, searchnumber , countnumber=0;
srand(time(0));
for (int i = 0; i<2000; i++)
x[i] = ((rand() % 10000) + 10001);
countnumber = sizeof x/sizeof 4;
sorting(x, size);
cout << "please enter your search number:";
cin >> searchnumber;
search(x, size, searchnumber , countnumber);
print(x, size);
system("pause");
return 0;
}
void sorting(int so[], int size)
{
int temp, j = 0;
for (int i = 0; i < 2000; i++) {
j = i;
for (j; j < 2000; j++) {
if (so[i] > so[j])
{
temp = so[i];
so[i] = so[j];
so[j] = temp;
}
}
}
}
void search(int numbers[], int size, int search, int count)
{
int low = 0, hi = (count - 1),mid;
while (low <= hi) {
mid = ((low + hi) / 2);
if (numbers[mid] == search)
{cout << "number is available" << endl;
break;
}
if (numbers[mid] < search) low = mid+1;
else hi = mid-1;
}
system("pause");
}
void print(int numbers[], int size)
{
int q;
cout << "do you want to see numbers?"<<"if yes enter 1 or no another key";
cin >> q;
if (q == 1) {
for (int i = 0; i < 2000; i++)
cout << numbers[i] << "\t";
}
}