匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 7 年前

取亂數 finction

我想做一個取亂數的程式

但需要用function的方式寫

不知道怎麻寫下去

目前寫是這樣

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<time.h>

int main(void)

{

int x[6],y;

srand(time(NULL));

for(y=0;y<6;y++)

{

x[y]=rand()%40+1;

printf("%d\t",x[y]);

}

system("pause");

}

3 個解答

評分
  • Tai
    Lv 5
    7 年前
    最佳解答

    目測你已經寫了產生六個亂數, 範圍從 1 到 40.

    你需要不重複的亂數嗎?

    2013-10-16 20:50:44 補充:

    #include<stdio.h>

    #include<stdlib.h>

    #include<conio.h>

    #include<time.h>

    int newval(int* buf, int n)

    {

    int a, i;

    do {

    a = rand()%40 + 1;

    for (i = 0; i < n; ++i)

    if (buf[i] == a) break;

    } while (i < n); // 有任何重複, 會先跳出. i <> n

    return a;

    }

    int main(void)

    {

    int x[6],y;

    srand(time(NULL));

    for(y=0;y<6;y++)

    {

    x[y]=newval(x, y-1);

    printf("%d\t",x[y]);

    }

    system("pause");

    }

    2013-10-18 17:46:41 補充:

    int newval(int* buf, int n)

    就是用 newval function,

    產生跟 buf 內不重複的新亂數,範圍在 1~40 之間。

    2013-10-19 03:08:12 補充:

    恩,我是用萬惡的暴力法 :D

  • 7 年前

    對 不重複的亂數

    但要求我用function的方式寫

    我就不知道我該怎麻寫

還有問題?馬上發問,尋求解答。