[英]Numbers positive and negative
我究竟做錯了什么? 我想要a
隨機數。 負整數和正整數
#include <iostream>
#include <cstdlib>
int main(){
int a;
cin<<a;
int t[a];
for(int i=0;i<a;i+=1)
t[a]=rand();
for(int i=0;i<a;i++)
cout>>t[i];
}
我非常初學者,我想要隨機數,但我只有一個非常大的。 有人可以幫忙嗎?
抱歉,您看到了我沒有看到的問題。 現在我知道我應該只寫>>endl
編輯:我更正了我的代碼,現在可以使用了
#include <cstdlib>
#include <time.h>
int main(){
int a;
cin>>a;
for(int i=0;i<a;i++)
cout<<(rand()-rand())<<endl;//i asked only for this "endl"
}
cin<<a;
在這里,您使用了錯誤的運算符。 將尖括號視為顯示數據流。 你要:
cin>>a;
與cout
類似:
cout<<t[i];
您還在第一個for
循環中使用a
而不是i
索引t
:
t[i]=rand();
//^ This is i, not a
另一個問題是您使用編譯器擴展來創建運行時大小的數組。 也就是說,對於標准 C++,您不能使用a
作為數組的大小,因為它在編譯時是未知的。
t[i]=rand();
不是
t[a]=rand();
還是你也寫錯了?
我不確定是否為 100%,但 IMO, rand()
只能創建從0
到65535
正數,具體取決於編譯可執行文件的時間:這意味着一旦您編譯了.exe
文件,它就會給出一遍又一遍地重復相同的數字!
為了讓他產生不同的數字,你必須使用srand()
。
另一件事:在 C++ 中,您不能分配type array[n]
的動態數組 [它不在標准中!],即使編譯器允許您這樣做! 實際上,編譯器將您的代碼轉換為array = new type[n]
,您必須使用delete[]
關鍵字解除分配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.