編寫雙色球選號的C語言程序可以利用隨機數生成器來產生選號。
以下是一個簡單示例:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_RED_NUM 33
#define MAX_BLUE_NUM 16
// 生成不重復的紅球號碼
void generateRedNumbers(int* redNumbers) {
int i, j;
srand((unsigned)time(NULL));
for (i = 0; i < 6; i++) {
redNumbers[i] = rand() % MAX_RED_NUM + 1;
// 檢查是否存在重復的號碼
for (j = 0; j < i; j++) {
if (redNumbers[i] == redNumbers[j]) {
i--;
break;
}
}
}
}
// 生成藍球號碼
int generateBlueNumber() {
srand((unsigned)time(NULL));
return rand() % MAX_BLUE_NUM + 1;
}
int main() {
int redNumbers[6];
int blueNumber;
generateRedNumbers(redNumbers);
blueNumber = generateBlueNumber();
printf("紅球號碼:");
for (int i = 0; i < 6; i++) {
printf("%d ", redNumbers[i]);
}
printf("\n藍球號碼:%d\n", blueNumber);
return 0;
}
這個程序中,我們定義了一個generateRedNumbers
函數來生成不重復的紅球號碼。它使用srand
函數初始化隨機數生成器,并使用rand
函數生成一個介于1和33之間的隨機數。然后,我們檢查生成的號碼是否與之前生成的號碼重復,如果有重復則重新生成。最終,我們得到6個不重復的紅球號碼。
另外,我們定義了一個generateBlueNumber
函數來生成藍球號碼。它也使用srand
函數初始化隨機數生成器,并使用rand
函數生成一個介于1和16之間的隨機數。
在主函數中,我們調用generateRedNumbers
函數生成紅球號碼,再調用generateBlueNumber
函數生成藍球號碼,并打印出選號結果。
注意:每次運行程序時,由于srand
函數使用了當前時間作為隨機數種子,所以每次生成的號碼都是隨機的。