求教个问题使用C++编写一个小程序要求用Visual Studio可以运行

要求取100个随机数排序后用户输入一个数然后从抽到的随机数中查找找到就输出found找不到就输出notfound查找过程循环直到用户输出-1退出程序100以内的可以重复的... 要求取100个随机数 排序后 用户输入一个数 然后从抽到的随机数中查找 找到就输出found 找不到就输出not found查找过程循环 直到用户输出-1退出程序
100以内的可以重复的数字也是可以的 期待你们的消息
4楼的兄弟没有 输入-1退出的一步~5楼兄弟的正在试~再次谢谢
5楼兄弟可以直接修改成一个完整的可运行程序吗 要把随机出来的数显示出来也可能是修改的不好~目前正在想办法显示数字 正在调试ING~~
展开
 我来答
難得當歌對酒時
2009-10-26 · TA获得超过1187个赞
知道小有建树答主
回答量:517
采纳率:100%
帮助的人:824万
展开全部
//试试这个行不行
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>

using namespace std ;

const int SIZE = 100 ;

inline void exchange( int& x , int& y ) {
int t = x ;
x = y ;
y = t ;
}

void printarray(int source[] , int size){
for ( int i = 0 ; i < size ; i++)
cout << setw(8) << source[i] ;
}

void creatarray(int source[] , int size){
//产生随机数
srand( static_cast<int>(time(0)) ) ;
for(int i = 0 ; i < size ; i ++ )
source[i] = rand() % size ;
}

void quicksort(int source[] , int start , int end )
{
//快速排序
if( start < end ){
int i = start ;
int j = end + 1 ;
while( i < j ) {
i++;
while( source[i] < source[start] )
++i ;
j--;
while( source[j] > source[start] )
--j ;

if( i < j )
exchange(source[i] , source[j]) ;
}
exchange(source[j] , source[start]) ;
quicksort(source , start , j-1) ;
quicksort(source , j+1 , end) ;
}
}

void bubblesort(int source[] , int size) {
//冒泡排序
for ( int i = 0 ; i < size ; i++ )
for ( int j = size ; j > i ; j-- ) {
if ( source[j] < source[j-1] )
exchange(source[j] , source[j-1]) ;
}
}

int binarysearch(int source[] , int size , int num) {
//二分查找,返回 num 在 source 中的位置
int start = 0 , end = size-1 , mid ;
while(start <= end) {
mid = (start+end) / 2 ;
if( source[mid] == num )
return mid ;
else if ( source[mid] > num )
end = mid - 1 ;
else
start = mid + 1 ;
}
return -1 ;//找不到返回 -1
}

int search(int source[] , int size , int num) {
//顺序查找,返回 num 在 source 中的位置
for ( int i = 0 ; i < size ; i++ ) {
if(source[i] == num)
return i ;
}
return -1 ;//找不到返回 -1
}

int main(){

int source[SIZE] , i = 0 , pos = 0 ;

creatarray(source , SIZE) ;

//quicksort(source , 0 , SIZE-1) ;//排序
bubblesort(source , SIZE-1) ;
printarray(source,SIZE) ;

cout << "输入要查找的数,-1 退出" << endl ;
cin >> i ;
while( i != -1 ) {
pos = binarysearch(source,SIZE,i) ;//查找
//pos = search(source,SIZE,i) ;
if( pos != -1 )
cout << "found" << endl << "位置:" << pos << endl ;
else
cout << "not found" << endl ;
cout << "输入要查找的数,-1 退出" << endl ;
cin >> i ;
}

return 0 ;
}

如果有问题我再修改。
wangbiao906
2009-10-26 · TA获得超过181个赞
知道答主
回答量:124
采纳率:0%
帮助的人:0
展开全部
代码如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a[100];
int i,j,search,count=0;
for(i=0;i<100;i++)
{
a[i]=rand()%100;
}
for(i=0;i<99;i++)
{
for(j=i+1;j<100;j++)
{
int temp;
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
printf("100个100以内的随机数(并且用从小到大排序):\n");
for(i=0;i<100;i++)
{
printf("%d\t",a[i]);
}
printf("请输入要找的数字:\n");
scanf("%d",&search);
for(i=0;i<100;i++)
{
if(search==a[i])
{
printf("found\n");
break;
}
if(search!=a[i])
{
count++;
if(count==100)
printf("not found\n");
}
}
system("PAUSE");
return 0;
}
本程序通俗易懂,希望你能从中有所收获,兄弟,加油啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuyuan23
2009-10-26 · TA获得超过565个赞
知道小有建树答主
回答量:511
采纳率:0%
帮助的人:393万
展开全部
100个随机数都是100以内的数?那样的话岂不是不能创建一个无重复数的100以内数的数组...即,该100个随机数必然包含重复数据...是不是这个意思?LZ快来修改吧,程序都快写好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vbtraz
2009-10-26 · TA获得超过5531个赞
知道大有可为答主
回答量:4152
采纳率:0%
帮助的人:4425万
展开全部
这随机数范围多大啊, 就 rand()的话, 能found就见鬼了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
石头翔子
2009-10-26 · 超过18用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:49.5万
展开全部
100以内的随机数取100个不就是1-100么,楼主的问题把问题解释下把
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式