wuyiyidemingzi 2018-11-22 05:24 采纳率: 100%
浏览 691
已采纳

随机10个数排序,选择排序法,为什么运行结果第二个数总是1?

代码如下
#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++

  • 写回答

1条回答 默认 最新

  • threenewbee 2018-11-22 05:31
    关注

    你的代码根本不对,我重新整理了下

    #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;
    }
    

    图片说明

    如果问题得到解决,请点我回答左上角的采纳和向上的箭头,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考