6个红色球号码和1个蓝色球
红色球号码从1—33中选择
蓝色球号码从1—16中选择
C:(粗体:随机数,红色:库排序)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int blue[];void printArr(int arr[],int len );
bool checkNum(int arr[],int len, int now);
int compare(const void *value1, const void *value2);
main() {
srand(time());
for(int i = ; i< ; i++) {
int n = rand()%+;
if (!checkNum(blue, , n)) {
i--;
continue;
}
blue[i] = n;
}
printf("取到的蓝球:");
printArr(blue, ); printf("排序后蓝球:");
// 函数库自带的快速排序函数
// 对于有多个重复值的数组来说,效率较低不稳定
qsort(blue, 6, sizeof(int), compare); printArr(blue, ); printf("红球:%d", rand()%+);
}
// qsort 要结合 compare使用
int compare(const void *value1, const void *value2) {
// 升序
return *(int*)value1 - *(int*)value2;
} void printArr(int arr[],int len ) {
for(int i = ; i<len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
bool checkNum(int arr[],int len, int now) {
for(int i = ; i<len; i++) {
if (arr[i] == now) {
return false;
}
}
return true;
}
C#
using System; namespace ConsoleApplication2 {
class Program {
static int[] 红球 = new int[];
static void Main(string[] args) {
Random r = new Random();
for (int i = ; i < ; i++)
{
int n = r.Next() + ;
if (重复Check(n))
{
i--;
continue;
}
红球[i] = n;
}
Array.Sort(红球);
foreach (int n in 红球)
{
Console.WriteLine(n);
}
// 蓝球
Console.WriteLine("蓝球:" + (r.Next() + ));
Console.ReadKey();
}
static bool 重复Check(int now) {
foreach (int n in 红球)
{
if (now == n)
{
return true;
}
}
return false;
}
}
}