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

C++二維陣列,大樂透開獎問題,急>

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

int i,target,count,mark[50];

srand(time(NULL));

for(i=1;i<=49;i++)

{

mark[i]=0;

}

count=0;

do

{

target=rand()%49+1;

if (mark[target]==0)

{

mark[target]=1;

count=count+1;

printf("%2d " ,target);

}

}while(count<6);

getchar();

}

這是上課時老師要求的49號選6印出的作業,

現在有一個變化題,可是我不曉得怎麼改…

問題如下:

(1)49個號碼選6個~同一期開出的不能重複

程式跑出的結果要印出要印出1~20期的隨機開獎號碼。

如何用二維陣列印出20組的結果呢?

1 個解答

評分
  • 1 0 年前
    最佳解答

    參一腳~~

    void main(){

    int i,j,r,tmp,count;

    int target[20][6],mark[49];

    for(i=0;i<49;i++) mark[i]=i+1;

    srand(time(NULL));

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

    {

    count=49;

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

    {

    r=rand()%count;

    target[i][j]=mark[r];

    tmp=mark[r];

    mark[r]=mark[count-1];

    mark[count-1]=tmp;

    count--;

    }

    }

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

    {

    printf("Round %d : ",i);

    for(j=0;j<6;j++) printf("%3d" ,target[i][j]);

    printf("\n");

    }

    getchar();

    }

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