必須要能自訂min,max以及亂數數量
舉例來說
我想要產生n個變數,而min =1 ,max=100
先用
int n;
int *a=new int [];
產生我所需的array
然後要怎麼定義在MIN和MAX之間的隨機變數放入ARRAY裡面呢?
一直卡在這
還有要用random seed ,
哪位高手可以幫忙解答阿~感激喔
2007-09-20 13:06:15 · 3 個解答 · 發問者 小鳥 1 in 電腦與網際網路 ➔ 程式設計
int main()
{
void inputinfo();
{
int min ; int max;
cout<<"please input min";
cin>>min;
cout<<"please input max";
cin>>max;
int n;
int *a=new int [];
cout<< "Please input n numbers you want to sort:"<
2007-09-20 19:25:30 · update #1
for(int i=0;i
*(a+i)=rand()%(max-min)+min;
}
for (i=1;i<=n;i++)
cout<
int sum;
for (i=1;i<=n;i++)
sum += a[i];
cout<<"sum="<
return 0;
}
結果是:compile與debug都可以過,但是run的時候會出問題
就是算SUM那邊會變成負值,不知道錯在哪裡??可以再幫我指點一下嗎~感激喔
2007-09-20 19:27:01 · update #2
#include
#include
#include
#include
#define randomize() srand((unsigned)time(NULL))
using namespace std;
void sort(int Len, int *Num)
{
int temp;
for(int i=0;i
temp=Num[i],Num[i]=Num[j],Num[j]=temp;
}
int main(int argc, char** argv){
//=====START=====//
int n;
cout<<"Input N: ",cin>>n;
int *a=new int[n];
randomize();
for(int i=0;i
*(a+i)=rand()%100+1;
}
sort(n,a);//排序由小排到大
for(int i=0;i
cout<<*(a+i)<
delete [] a;//假如不加這行,執行程式後,電腦可能會當機
//=====END=====//
system("PAUSE");
return 0;
}
2007-09-20 16:01:31 · answer #1 · answered by Big_John-tw 7 · 0⤊ 0⤋
超有幫助~
多謝你喔
2007-09-20 20:17:51 · answer #2 · answered by 小鳥 1 · 0⤊ 0⤋
這裡有篇 rand( ) 的文章,包含不少 rand( ) 的相關問題。
你的問題裡面也有。
對你現在而言,這篇可能難了點!
一但你能讀懂這篇,95% 以上 的 rand( ) 問題應該都難不倒你了!^_^
加油!^_^
http://www.phpbbserver.com/graphicsparalle/viewtopic.php?t=129
2007-09-21 08:03:58 補充:
C 的陣列值是從 0 到 n-1
如:
int a[4],可用的是 a[0] a[1] a[2] 和 a[3] 這四個!
注意:沒有 a[4]!!!
2007-09-21 08:04:41 補充:
你另外錯在 sum 沒給初值!
改成:
int sum = a[0];
for (i=1; i
就好了!
int sum = 0;
for (i=0; i
也可以,但較不好
另外,將來在浮點數裡,你可能會遇到加起來答案差太多的問題!
可參
http://www.phpbbserver.com/graphicsparalle/viewtopic.php?t=6
2007-09-20 18:37:14 · answer #3 · answered by ? 7 · 0⤊ 0⤋