长长的随机数组
Random Array of long
有人可以告诉我为什么编译时没有错误,但是在程序运行时它给出了错误的返回。我想创建一个随机的长数组并找到最大值。非常感谢你,对不起,因为我的英语。
#include <iostream>
#include <stdlib.h>
#include <ctime>
#include <conio.h>
#include <malloc.h>
using namespace std;
void main()
{
long max,dem;
//srand(time(0));
long *A=(long *)malloc(1000000*sizeof(long));
srand(time(NULL));
for(long i=0;i<1000000;i++)
{
A[i]=rand();
}
max=A[0];
for(long i=0;i<1000000;i++)
{
if(A[i]<max)
max=A[i];
}
dem=0;
for(long i=0;i<1000000;i++)
{if(A[i]==max) dem++;}
cout <<"n Gia tri lon nhat: "<<max;
cout <<"n Tan so xuat hien: "<<dem;
getch();
}
if(A[i]<max)
max=A[i];
看起来好像应该是
// v-- here
if(A[i]>max)
max=A[i];
旁注:您不会清理分配的内存。至少,你应该
free(A);
完成后。除非不要这样做,因为处理裸记忆很少是一个好主意。请改用std::vector
:
#include <vector>
...
std::vector<long> A(1000000);
而不是
long *A=(long *)malloc(1000000*sizeof(long));
然后,您不必执行任何手动清理,因为std::vector
的析构函数将在A
超出范围时处理释放。 std::vector
重载[]
运算符,使其像普通数组一样可用(对于许多意图),因此您不必更改其余代码即可正常工作。
。除了一件事:
void main()
不是标准C++;因此,GCC 和 Clang 拒绝编译您的代码。你应该使用
int main()
相反。同样,不需要进一步的更改;main
函数有一个特殊的例外,如果没有显式返回任何值,它就会返回0
。按照惯例,0
表示成功完成到周围的外壳;如果出现错误,main
应返回非零值。
相关文章:
- 在将数字随机生成为数组期间从内存输出随机数的数组
- 将随机生成的数字添加到数组 + 对这些数组求平均值
- C++具有随机计数的数组
- 从C++数组中选择一个随机元素
- 为什么我的 2d 数组的第二行从 RAM 中获取随机值?
- 该程序将.csv文件中的一系列单词放入数组中,然后随机生成句子.但它不起作用
- 为什么我的数组值会更新为随机值?
- 在 c++ 的 10x10 数组中生成特定数量的多个随机字符
- SFINAE - 检测类型 T 是指针、数组还是带有随机访问运算符的容器,以及给定的值类型
- 动态数组传递给 main 中用随机值填充的函数,返回值3221226356
- 选择随机字符串数组的排序
- 如何在 3x4 数组中随机 4 个不同的位置
- 字符数组中的十六进制导致写入套接字时出现随机字符
- 更快地访问 C++ 数组中的随机元素
- 通过数组C 随机增加
- C++ 数组随机播放不起作用
- 将多维数组随机化(随机播放)为另一个 2D 数组
- 使用二维数组随机生成器objective c和c++
- 数组随机存取c++
- 多维数组随机漫步程序