橙子学C语言(7)
void caipiao() {int i = 0, j, t;
int a;
int flag;
printf("您随机的彩票是:");
srand((unsigned)time(NULL));
while(i < 7) {
a = (rand() % 33) + 1;
for(j = 0; j < i; j++) {
if(a == a) {
i--;
break;
}
}
i++;
}
for(j = 1; j <= 7; j++) {
for(i = 0; i < 7 - j; i++) {
if(a > a) {
t = a;
a = a;
a = t;
}
}
}
for(i = 0; i < 7; i++) {
printf("%d ", a);
}
}
void main() {
int i = 0, j, t;
int a;
int flag;
printf("您随机的彩票是:");
srand((unsigned)time(NULL));
while(i < 7) {
a = (rand() % 33) + 1;
for(j = 0; j < i; j++) {
if(a == a) {
i--;
break;
}
}
i++;
}
for(j = 1; j <= 7; j++) {
for(i = 0; i < 7 - j; i++) {
if(a > a) {
t = a;
a = a;
a = t;
}
}
}
for(i = 0; i < 7; i++) {
printf("%d ", a);
}
printf("\n您对这猪彩票选好满意么? 1-满意。0-不满意(重新选择)\n请选择:");
scanf("%d", &flag);
if(flag == 1) {
printf("您确认的彩票号是:\n");
for(i = 0; i < 7; i++) {
printf("%d ", a);
}
} else if(flag == 0) {
do {
caipiao();
printf("\n您对这猪彩票选好满意么? 1-满意。0-不满意(重新选择)\n请选择:");
scanf("%d", &flag);
} while(flag == 0);
} else {
do {
printf("输入有误,重新输入, 1-满意。0-不满意(重新选择)\n请选择: ");
scanf("%d", &flag);
} while((flag != 1) && (flag != 0));
}
} 这个是个简单的∵,可以随意选一组1到33的号。
因为随机种子要用时间来随机,所以,太快的输入0,就能连续1到3次得到同样的结果。 橙子最近很勤奋 (yct (11): 完全看不懂的说~~~ 是不是乱码? 好长~有点没有明白~
#define UPPER_BOND (33)
#define LOTTERY_NUM (7)
#define MY_TRUE (1)
#define MY_FALSE (0)
unsigned auiLottery = {0};
unsigned short IsNumberInLotteryArray(unsigned uiNumber)
{
int i = 0;
for (i = 0; i < LOTTERY_NUM; i++)
{
if (uiNumber == auiLottery)
{
return MY_TRUE;
}
}
return MY_FALSE;
}
void main()
{
int num = 0;
int i = 0;
printf("\n您随机的彩票是:");
srand((unsigned)time(NULL));
for (i = 0; i < LOTTERY_NUM;)
{
num = rand()%UPPER_BOND;
/* 如果生成的数字有重复,则继续重新计算,否则输出 */
if (MY_TRUE == IsNumberInLotteryArray(num))
{
continue;
}
else
{
printf(" %d", num);
i++;
}
}
return;
}
良好的c语言编程风格的一些要点:
1. 用宏来代替单纯无意义的数字
2. 适当的注释
3. 变量都需要初始化 随机号码好得很!
页:
[1]