- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开展一个项目,我们必须创建一个包含 1000 个元素的数组,然后将其传递给另一个函数以对其进行排序。我在网上看到的所有内容都向您展示了如何将它从 main 传递到另一个函数,而不是相反。
请查看我的代码并帮助我将 Ar[1000]
从 Array()
传递到 ISort
并最终传递给 main
#include <iostream>
#include <time.h>
using namespace std;
void Array()//function to make array
{
int Ar[1000];//creating array
int i = 0;//random variable to be element #
int counter = 0;// counter variable
int randnum;//variable to old random number
srand(time(NULL));//seeding rand with time
while (counter != 1000)
{
randnum = rand();
Ar[i] = randnum;
cout << Ar[i]<<endl;
counter++;
}
}
void ISort(int Ar[1000])//Iterative sort
{
int count = 0;//another counter variable
int count2 = 0;//counter variable # 3 because nested loops
int j=0;//Temp index # similar to i
int temp; //Temp variable to help switch elements
while (count != 1000)
{
if (Ar[count] < Ar[j])
{
temp = Ar[count];
Ar[count] = Ar[j];
Ar[j] = temp;
}
}
}
/*void RSort(int Ar)//Recursive sort
{
}
*/
int main()
{
Array();
ISort();
system("Pause");
return 0;
}
最佳答案
Ar
在你的 Array
函数完成后将被销毁,你需要有一种方法来防止这种情况,一种方法是通过参数传递数组使其成为函数局部变量:
void Array(int* Ar, int count)//function to make array
{
我还将您当前的 ISort
定义更改为:
void ISort(int* Ar, int acount)//Iterative sort
其中 acount
是 Ar
中元素的数量。这是因为使用 void ISort(int Ar[1000])
或 void ISort(int* Ar)
没有区别(阅读 here 了解更多信息).如果您想保留数组类型,则必须使用以下方法通过引用传递它:void ISort(int (&Ar)[1000])
。
main
的最后变化:
int Ar[1000];//creating array
Array(Ar, 1000);
ISort(Ar, 1000);
system("Pause");
return 0;
工作代码在这里:http://coliru.stacked-crooked.com/a/678f581f802da85b
您还忘记了在排序循环中增加 count
。
关于c++ - 努力将在一个函数中创建的数组传递给排序函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40942964/
我正在尝试为我的项目创建一些单元测试,经过大量挖掘之后,我发现了Effort,这个想法很棒,它模拟数据库而不是处理伪造的DBContext,顺便说一句,很难做到正确使用复杂的架构。 但是,我将用户的电
我正在尝试对某些响应 Entity Framework 数据库上下文的类进行单元测试。为了寻求帮助,我设法找到了一个名为 Effort 的库,它似乎有点旧,而且没有很好的文档记录,但它似乎可以工作,而
这两天,Auto-GPT 爆火 https://github.com/Torantulino/Auto-GPT 它是一款让最强语言模型GPT-4能够自主完成任务的模型,让整个AI圈疯
为什么会出现这个异常?这是错误吗? 我正在使用 EF 测试库 Effort 创建我的数据库的内存实例并遇到这个有趣的场景: 打开DbContext1 将项目添加到表(不保存) 关闭DbContext1
我是一名优秀的程序员,十分优秀!