C用随机函数(自查功能和用法)生成20个数存放到数组中并按降序排序从键盘输入一个数完成数组中的二分查找
1个回答
展开全部
<pre t="code" l="cpp">#include <stdio.h>
#include "stdlib.h"
#include "time.h"
int main(void){
int a[11],i,j,b;
srand((unsigned)time(NULL));
for(i=0;i<10;a[i++]=rand()%100);//随机产生10个小于100的整数存入数组a
for(i=0;i<10;i++){//降序排序
for(b=i,j=b+1;j<10;j++)
if(a[b]<a[j])
b=j;
if(b-i)
j=a[b],a[b]=a[i],a[i]=j;
printf("%3d",a[i]);//排序的同时输出以便观察
}
printf("\nInput b(int:)\nb=");
for(scanf("%d",a+10),i=10;i;i--){//输入一个数放在最后
if(a[i]<=a[i-1])//若这处位置合适则退出操作
break;
b=a[i],a[i]=a[i-1],a[i-1]=b;//不合适则与前一个数交换
}
for(i=0;i<11;printf("%d ",a[i++]));//观察插入后的数组
printf("\n");
return 0;
}
#include "stdlib.h"
#include "time.h"
int main(void){
int a[11],i,j,b;
srand((unsigned)time(NULL));
for(i=0;i<10;a[i++]=rand()%100);//随机产生10个小于100的整数存入数组a
for(i=0;i<10;i++){//降序排序
for(b=i,j=b+1;j<10;j++)
if(a[b]<a[j])
b=j;
if(b-i)
j=a[b],a[b]=a[i],a[i]=j;
printf("%3d",a[i]);//排序的同时输出以便观察
}
printf("\nInput b(int:)\nb=");
for(scanf("%d",a+10),i=10;i;i--){//输入一个数放在最后
if(a[i]<=a[i-1])//若这处位置合适则退出操作
break;
b=a[i],a[i]=a[i-1],a[i-1]=b;//不合适则与前一个数交换
}
for(i=0;i<11;printf("%d ",a[i++]));//观察插入后的数组
printf("\n");
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询