丫達 發問時間: 電腦與網際網路程式設計 · 1 0 年前

C++的亂數問題 為什麼我無法用random產生亂數?

這是我寫的程式碼

#include<stdio.h>

int random(int);

void main(){

printf(\"%d\",random(100));

}

我主要想了解為什麼random不能用?

不然就是只出現一個固定的數,不是亂數

試了很多遍,也找了很多文章都沒有詳細的說明

我在compile都沒問題,但在build卻出現問題

以下是錯誤訊息

--------------------Configuration: Cpp1 - Win32 Debug--------------------

Linking...

Cpp1.obj : error LNK2001: unresolved external symbol \"int __cdecl random(int)\" (?random@@YAHH@Z)

Debug/Cpp1.exe : fatal error LNK1120: 1 unresolved externals

Error executing link.exe.

Cpp1.exe - 2 error(s), 0 warning(s)

請問要怎麼改,random才能用?

PS: randomize 和 rand我有用過了,現在只想了解 random

4 個解答

評分
  • 1 0 年前
    最佳解答

    #include<stdio.h>

    #include<time.h>

    void main()

    {

    int random(int);

    srand((unsigned) time(NULL));

    printf("%d\n",random(100));

    }

    編譯結果:

    /temp> gcc 015.c

    015.c: In function ‘main’:

    015.c:6: warning: return type of ‘main’ is not ‘int’

    015.c:9:2: warning: no newline at end of file

    /temp>

    加入srand函式後亂數輸出沒什麼問題

    你編譯上的錯誤,應該是你編譯器沒有支援這函式庫跟語法的關係

    建議你換個編譯器試試

    這是我用的版本,參考一下

    /temp> cc --version

    cc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux)

    Copyright (C) 2005 Free Software Foundation, Inc.

    This is free software; see the source for copying conditions. There is NO

    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    參考資料: 自己
    • Commenter avatar登入以對解答發表意見
  • ?
    Lv 4
    1 0 年前

    rand()%101 ....產生0~100

    據我所知...random()好像是TC++的...

    2006-08-24 03:31:33 補充:

    上面那是題外話......

    • Commenter avatar登入以對解答發表意見
  • 1 0 年前

    原因 sheep 已說明。

    你要用的話,要去掉

    int random(int);

    最前面要加上

    #include <stdlib.h>

    把 random(100);

    改成 rand();

    要它每次執行會不同,要在最前面加

    #include <time.h>

    在 main(){ 後加上

    srand(time(null));

    手邊目前沒有 compiler,可能有小錯誤。

    您自己試一下。

    • Commenter avatar登入以對解答發表意見
  • 忠明
    Lv 4
    1 0 年前

    #include<stdio.h>

    int random(int);

    void main(){

    printf("%d",random(100));

    }

    只有這五行?

    這代表你自己宣告了一個函數叫做random()

    可是你沒有給他定義

    它怎麼知道怎麼實做

    不是你給他定一個名字叫做"random"

    程式碼就會自己表現出"random"這個行為喔

    randomize 和 rand可以用

    那是因為那都已經是標準函式庫的東西

    已經是有人幫你寫好了, 所以你可以直接用

    2006-08-24 10:36:33 補充:

    對喔, 忘記還有TC, 想說這麼短應該不是在BCB裡面

    • Commenter avatar登入以對解答發表意見
還有問題?馬上發問,尋求解答。