请用C++改写下列C代码达到输出8个数字后由小到大排序后,再进行8个数中的查找找到则输出该数

来源:百度知道 编辑:UC知道 时间:2024/06/23 01:10:31
请用C++改写下列代C码达到输出8个数字后由小到大排序后,再在这8个数中进行查找,找到输入中有的数则输出该数,没找到则NOT FOUND
#include<stdio.h>
#define NUM 8
void main()
{
int a[NUM],search;
int i=0,j=0;
int head=0,end=NUM-1,mid;
printf("input 8 number:\n");
for(i=0;i<=NUM-1;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<NUM;i++)
{
int change;
for(j=i+1;j<NUM;j++)
{
if(a[j]<=a[i])
{
change=a[j];
a[j]=a[i];
a[i]=change;
}
}
printf("%d ",a[i]);
}

while(1)
{
printf("input the searched number:\n");
scanf("%d",&search);

while(end>=head)
{
mid=(head+end)/2;
if(search<=a[mid])
{
end=mid;
}
else if(search>a[mid])
{
head=mid+1;
}
}
if(search==a[mid])
{

我用的vs2008,不同编译器会稍微有点差别
#include <iostream>
#define NUM 8
using namespace std;
void main()
{
int a[NUM],search;
int i=0,j=0;
int head=0,end=NUM-1,mid;
cout << "input 8 number:" << endl;
for(i=0;i<=NUM-1;i++)
{
cin >> a[i];
}
for(i=0;i<NUM;i++)
{
int change;
for(j=i+1;j<NUM;j++)
{
if(a[j]<=a[i])
{
change=a[j];
a[j]=a[i];
a[i]=change;
}
}
cout << a[i] << " ";
}
cout << endl;

while(1)
{
cout << "input the searched number:\n";
cin >> search;

while(end >= head)
{
mid=(head+end)/2;
if(search <a [mid])
{
end=mid;
}
else if(search>a[mid])
{
head=mid+1;
}
else break;