代码如下
#include
#include
#include
using namespace std;
void SelectionSort(int a[],int n)
{
int t;
for(int j=1;j for(int i=0;i if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
int main()
{
srand((int)time(0));
int a[10],i;
for(i=0;i<10;i++)
a[i]=rand()%1000+1;
SelectionSort(a,10);
for(i=0;i<10;i++)
cout<<a[i]<<"\n";
return 0;
}
无论运行多少次结果第二位一直都是1
比如
41
1
165
178
249
279
376
382
433
711
求各位大佬指出错误 刚开始学c++
你的代码根本不对,我重新整理了下
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
void SelectionSort(int a[],int n)
{
int t;
for(int j=0;j<n; j++)
{
int min=j;
for(int i=j+1;i<n;i++)
if (a[min] > a[i]) min = i;
if (min != j)
{
t=a[min];
a[min]=a[j];
a[j]=t;
}
}
}
int main()
{
srand((int)time(0));
int a[10],i;
for(i=0;i<10;i++)
a[i]=rand()%1000+1;
SelectionSort(a,10);
for(i=0;i<10;i++)
cout<<a[i]<<"\n";
return 0;
}
如果问题得到解决,请点我回答左上角的采纳和向上的箭头,谢谢