怎么办哦这个题目不会做

建立一个一维数组a,完成以下任务,输入输出格式参见下图。利用rand()函数产生10个10~100之间的整数,存入数组a中并输出;使用冒泡排序法,将数组a中的数据按降序排列,并输出;使用折半查找法在数组a中查找是否有键盘输入的指定数据,并输出查找结论(没找到或在第X个位置找到)。

#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
void main()
{
int a[10],i,j,t,top=0,mid,bot=9,x;

//利用rand()产生10个10~100之间的整数,存入a中并输出
//rand() % (b-a+1)+ a ; 表示  a~b 之间的一个随机整数
cout<<"10个10到100间的随机整数为:"<<endl;
for(i=0;i<10;i++)
{
	a[i]=10+rand()%(100-10+1);
	cout<<a[i]<<" ";
}
cout<<endl;
//使用冒泡法,将数组a按降序排列,并输出
for(i=0;i<9;i++)
{
	for(j=0;j<9;j++)
		if(a[j]<a[j+1])
		{
			t=a[j];
			a[j]=a[j+1];
			a[j+1]=t;
		}
}
cout<<"按从大到小排列的结果为:"<<endl;
for(i=0;i<10;i++)
	cout<<a[i]<<" ";
cout<<endl;
//使用折半查找完成指定数据(从键盘输入)的查找,并输出是否查找到的信息
cout<<"请输入要查找的数:";
cin>>x;
while(top<=bot)
{
	mid=(top+bot)/2;
	if(a[mid]==x)
	{
		break;
	}
	else
		if(a[mid]<x)
			bot=mid-1;
		else
			if(a[mid]>x)
				top=mid+1;
}
if(top<=bot)
	cout<<x<<"在第"<<mid+1<<"个位置。"<<endl;
else
	cout<<"该数据不存在。"<<endl;
system("pause");

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632