English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

隨機產生6個 介於1到49(含1及49)的不相同的整數

不能重複

用C語言寫

2007-12-13 13:56:36 · 2 個解答 · 發問者 Atm maxing 1 in 電腦與網際網路 程式設計

2 個解答

//Power by Visual Studio 2005
//Download Site: http://www.microsoft.com/taiwan/vstudio/express/
#include
#include
#include
#define MAX 6
int isrepeat(int Length, int *Number, int Key){
int l=Length,*n=Number,k=Key,flag=0,i;
for(i=0;i if(n[i]==k){
flag=1;
break;
}
}
return flag;
}
int main(int argc, char* argv[]){
//=====START=====//
int i,n[MAX];
srand((unsigned)time(NULL));
for(i=0;i do{
n[i]=rand()%48+1;
}while(isrepeat(i,n,n[i]));
printf(" %d%s",n[i],(i==(MAX-1)?"\n":""));
}
//=====END=====//
system("PAUSE");
return 0;
}

2007-12-13 17:41:59 · answer #1 · answered by Big_John-tw 7 · 0 0

#include
#include
#include

#define MAXNUM 6//修改此值增加亂數個數

int main()
{
int a[MAXNUM], i = 0, j;
srand(time(NULL));//亂數種子
do {
a[i] = rand() % 49 + 1;//產生1~49的亂數
for(j = 0; j < i; j++)
if(a[i] == a[j]) {
printf("發現重複 a[%d]=a[%d]=%d\n", i, j, a[i]);
i--;
break;
}
i++;
} while(i < MAXNUM);
for(i = 0; i < MAXNUM; i++)
printf("a[%d]=%d\n", i, a[i]);
system("pause");
return 0;
}

====範例輸出====
發現重複 a[3]=a[2]=6
a[0]=29
a[1]=23
a[2]=6
a[3]=15
a[4]=48
a[5]=35
請按任意鍵繼續 . . .

2007-12-13 15:57:14 · answer #2 · answered by 溯源而上 4 · 0 0

fedest.com, questions and answers