 悬赏园豆:10
                [待解决问题]
                悬赏园豆:10
                [待解决问题] 
            
                 
        题目要求利用一维数组保存系统随机产生的10个两位正整数,然后利用选择排序方法按照从小到大的次序排列并显示出来
我的代码:
using namespace std;
int main()
{
int arr[10],num;
for(int i=0;i<10;i++)
{
	//srand((unsigned int)time(NULL));
	srand(time(0)); 
	int num = 10+rand()%100;
	arr[i]=num;
}
for(int h = 0;h<10-1;h++)
{
	for(int j = 0;j<10-h-1;j++)
	{
		if(arr[j]>arr[j+1])
		{
			int temp = arr[j];
			arr[j]=arr[j+1];
			arr[j+1]=temp;
		}
	}
}
for( int k = 0;k < 10;k++)
{
	cout<<arr[k]<<endl;
}
return 0;
}
运行结果:

总是只能生成一个数 怎么解决啊 大佬们 真心求教
把srand放到循环外面只调用一次就可以了.
弄好了 谢谢您
在你的代码中,随机数生成的部分应该放在循环外面,以确保每次迭代都能够生成新的随机数。
cpp
Copy code
using namespace std;
int main()
{
int arr[10];
// 种子放在循环外面
srand(time(0));
for(int i = 0; i < 10; i++)
{
    // 生成随机数并存入数组
    int num = 10 + rand() % 90; // 生成范围为10到99的随机数
    arr[i] = num;
}
// 选择排序
for(int h = 0; h < 10 - 1; h++)
{
    for(int j = 0; j < 10 - h - 1; j++)
    {
        if(arr[j] > arr[j + 1])
        {
            int temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
        }
    }
}
// 显示排序后的数组
for(int k = 0; k < 10; k++)
{
    cout << arr[k] << endl;
}
return 0;
}
这样就能够确保每次迭代都能够生成新的随机数了。