生成10个1-10之间的随机数,不能雷同。用冒泡排序法从小到大排序,然后输出 。C++完成。怎么改错,谢谢

2025-02-24 02:44:56
推荐回答(1个)
回答1:

看看这个可以不!
#include
#include
#include "stdlib.h"
using namespace std;
int main(int argc, char* argv[])
{
int temp,array[10];
int i;
srand((unsigned int)time(0));
bool unique=false;
for(i=0;i<10;)
{
int num=0;
num=static_cast(1+(10*static_cast(rand()))/(RAND_MAX+1));//生成随机数
for(size_t m=0;m<=i;m++)
{
if(array[m]==num) //判断是否有相同的数字
{

unique=true;
break;
}

}
if(unique==true) //如果有相同,重新生成
{
i=i;
}
else //如果没有,写入数组,i加1,继续循环
{
array[i]=num;
i++;

}
unique=false;
}

for(int j=0;j<=9;j++) //用冒泡排序法对数组元素排序
{
for(int k=j;k<=9;k++)
{
if(array[j]>=array[k])
{
temp=array[j];
array[j]=array[k];
array[k]=temp;
}
}
}
for(size_t n=0;n<=9;n++) //输出完成排序的随机数
{
cout< }
cout< return 0;
}