三星程序部招聘的考卷,大家做做能得几分(填空3)
3)一下程序是用冒泡排序发对数组按升序进行排序,请将程序补充完整#include<iostream.h>
void bubble(int[],int);
void main()
{
int array[]={55,2,6,4,32,12,9,73,26,37};
int len=_______________________________;
for(int i=0; i<len; i++)
cout<<array[i]<<",";
cout<<endl;
bubble(array,len);
}
void bubble(int a[],int size)
}
int i,temp;
for(int pass=1;__________; pass++)
{for(i=0;____________; i++)
if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
for(i=0; i<size; i++)
cout<<a[i]<<",";
cout<<endl;
}
----------------解决方案--------------------------------------------------------
#include<iostream>
using namespace std;
void bubble(int[],int);
void main()
{
int array[]={55,2,6,4,32,12,9,73,26,37};
int len=10;
for(int i=0; i<len; i++)
cout<<array[i]<<",";
cout<<endl;
bubble(array,len);
}
void bubble(int a[],int size)
{
int i,temp;
for(int pass=1;pass<size; pass++)
{for(i=0;i<size-pass; i++)
if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
for(i=0; i<size; i++)
cout<<a[i]<<",";
cout<<endl;
}
----------------解决方案--------------------------------------------------------
#include<iostream>
using namespace std;
void bubble(int[],int);
void main()
{
int array[]={55,2,6,4,32,12,9,73,26,37};
int len=10;
for(int i=0; i<len; i++)
cout<<array[i]<<",";
cout<<endl;
bubble(array,len);
}
void bubble(int a[],int size)
{
int i,temp,flag=1;
for(int pass=1;pass<size-1&&flag==1; pass++) //注意这里
{ flag=0;
for(i=0;i<size-pass; i++)
if(a[i]>a[i+1])
{ flag=1;
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
for(i=0; i<size; i++)
cout<<a[i]<<",";
cout<<endl;
}
对这样的题我不敢恭维了。三星公司考试的题。大家注意我的flag标记。 我帮他改良的
拿我的程序上机运行去。
----------------解决方案--------------------------------------------------------