随机从1-33中抽取6个数,然后从1-16中抽取一个数,然后用一个漂亮的窗体告诉我,可以吗?请用修饰一下这个窗体,让他看起来更漂亮,并且一次支持生成10组数字。
时间: 2023-04-02 11:04:49 浏览: 257
Windows窗体~随机数字抽奖系统.rar
可以。以下是一个简单的实现:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#define MAX_NUM 33
#define MAX_SPECIAL_NUM 16
#define NUM_PER_GROUP 6
#define NUM_OF_GROUPS 10
void generate_numbers(int *numbers, int special_num) {
int i, j, temp;
srand((unsigned)time(NULL));
for (i = ; i < NUM_OF_GROUPS; i++) {
for (j = ; j < NUM_PER_GROUP; j++) {
temp = rand() % MAX_NUM + 1;
while (numbers[i * NUM_PER_GROUP + j] == temp) {
temp = rand() % MAX_NUM + 1;
}
numbers[i * NUM_PER_GROUP + j] = temp;
}
}
for (i = ; i < NUM_OF_GROUPS; i++) {
numbers[i * NUM_PER_GROUP + NUM_PER_GROUP] = special_num;
}
}
void draw_window(int *numbers) {
int i, j;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X = ;
pos.Y = ;
SetConsoleCursorPosition(hConsole, pos);
printf("以下是%d组随机数字:\n", NUM_OF_GROUPS);
for (i = ; i < NUM_OF_GROUPS; i++) {
for (j = ; j < NUM_PER_GROUP + 1; j++) {
printf("%2d ", numbers[i * (NUM_PER_GROUP + 1) + j]);
}
printf("\n");
}
}
int main() {
int numbers[NUM_OF_GROUPS * (NUM_PER_GROUP + 1)];
int special_num;
int i;
for (i = ; i < NUM_OF_GROUPS * (NUM_PER_GROUP + 1); i++) {
numbers[i] = ;
}
printf("请输入一个1-16之间的特殊数字:");
scanf("%d", &special_num);
generate_numbers(numbers, special_num);
draw_window(numbers);
return ;
}
这个程序会让用户输入一个1-16之间的特殊数字,然后生成10组随机数字,每组数字包括6个1-33之间的数字和一个特殊数字。最后,程序会在控制台上输出这些数字,每组数字占一行,用空格隔开。
阅读全文