srand(time(NULL))不再给字符串了

时间:2014-02-25 11:27:13

标签: c++

作为编程的初学者,我无法找到为什么srand不会再改变字符串。

#include <stdlib.h>
#include <iostream>
#include <ctime>


using namespace std;

int main()
{
int v[100], i, p, n,

srand(time(NULL));
cout<<"Numbers of numbers: "; cin>>n; cout<<endl;

for(i=0; i<=n-1; i++)
v[i]=rand()%100;

cout<<"Numbers: "<<endl;
for(i=0; i<=n-1; i++)
    cout<<v[i]<<" ";

for(i=0; i<=(n-1)/2; i++){
p=v[i];
v[i]=v[n-(i+1)];
v[n-(i+1)]=p;
}

cout<<"Reversed numbers: "<<endl;
for(i=0; i<=n-1; i++)
    cout<<v[i]<<" ";

return 0;
}

尝试重建它,从1重写它,等等。

。即使它在它只是一种类型的错误之前确实能够正常工作,也是行不通的。

编辑:很奇怪,因为我复制粘贴开头,它与之相关......我猜这是我的错误。没有给予足够的重视T_T

1 个答案:

答案 0 :(得分:3)

如果启用更多警告,您会看到类似

的内容
program.cpp:11:1: warning: unused variable 'srand' [-Wunused-variable]
srand(time(NULL));
^

原因可以在前一行看到:它以逗号

结尾
int v[100], i, p, n,
// Note comma here ^

所以代码正在做的是声明一个名为srand变量,而不是调用名为srand函数

将此作为始终构建的课程,并启用额外警告。启用更多警告会使这个问题变得非常明显,但它也可以提供有关未定义行为的提示。