Anonymous
Anonymous asked in 電腦與網際網路程式設計 · 1 decade ago

C語言 樂透

用亂數模擬精彩539 的樂透號碼。

利用C 的亂數函數產生10 組精彩539 的簽獎號碼。

1. 用亂數產生 10 組簽獎號碼。簽獎號碼為6 個1~39 的數字組成。

2. 程式要能判斷同一組產生的號碼中不能有重覆號碼出現(意即:不能開出一組簽獎號碼中有兩個同號)。

3. 每一組的6 個號碼必須由小排列到大。

這是在知識+找到的

但是沒有辦法照順序排列

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void numerals();

void main()

{

int n,i=0;

printf("請問要產生幾組樂透:");

scanf("%d",&n);

srand((unsigned)time(NULL));

while(i<n)

{

numerals();

i++;

}

system("pause");

}

void numerals()

{

int c[6],w1=0,f1,f2;

while(w1==0)

{

w1=1;

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

c[f1]=rand()%39+1;

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

for(f2=f1+1;f2<6;f2++)

if(c[f1]==c[f2])

w1=0;

}

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

printf("%d ",c[f1]);

printf("\n");

getch();

}

誰可以跟我說要怎麼用

Update:

好像放了getch();

就只能跑出一組

有沒有更簡單的方式寫這個程式?

2 Answers

Rating
  • 1 decade ago
    Favorite Answer

    你是說你沒辦法排列大小嗎??

    其實你只要用簡單的氣泡排序法就可以嚕!

    將產生的數字用陣列紀錄!

    再將陣列傳入函數去牌大小即可喔!

    我就把函數寫出來好嚕!

    void bigtosmall (int array[] )

    {

    int i,j,temp; /*宣告區域變數*/

    for(i=0;i&lt;6;i++)

    for(j=0;j&lt;6-i ;j++)

    if(a[j]&gt;a[j+1])

    {

    temp=a[j];

    a[j]=a[j+1];

    a[j+1]=temp;

    }

    }

    這是把數字由小到大的功能函數主體! 其實還有更進階版的 = =

    我想說你只是要排大小功能= = 我就列出拉= =

    在程式語言c中導論排大小的方法很多啦! 各有其的優與弊!

    ^^ 有幫到你嗎?? 沒有就冏啦...

    Source(s):
  • Anonymous
    5 years ago

    * ***** http://*****

    [電子遊戲]

    拉霸、水果盤、7PK、5PK

    [運彩遊戲]

    棒球、籃球、足球、網球、冰球、各種體育經典賽事

    [真人遊戲]

    百家樂、21點、骰寶、輪盤、牌九、三公、輪盤、翻攤、牛牛、二八杠

    [對戰遊戲]

    台灣麻將、德州撲克、骰盅吹牛、四支刀、鬥地主、十三支、二八槓、暗棋、接龍

    [彩球遊戲]

    香港六合、台灣樂透、今彩539、樂合彩、大陸時時彩、基諾彩、北京賽車、賽狗、賽馬、指數

    [優惠活動]

    1. 新舊會員儲值就送500點

    2. 真人百家樂彩金等你拿

    ***** http://*****

    歡迎免費體驗試玩!!

    線上影片直播、正妹圖、討論區免費註冊 ~

Still have questions? Get your answers by asking now.