找回密码
 快速注册

QQ登录

只需一步,快速开始

查看: 2131|回复: 7

橙子学C语言(7)

[复制链接]
橙子 发表于 2009-6-7 09:09:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?快速注册

×
void caipiao() {
int i = 0, j, t;
int a[7];
int flag;
printf("您随机的彩票是:  ");
srand((unsigned)time(NULL));
while(i < 7) {
a[i] = (rand() % 33) + 1;
  for(j = 0; j < i; j++) {
   if(a[i] == a[j]) {
    i--;
    break;
   }
  }
  i++;
}
for(j = 1; j <= 7; j++) {
  for(i = 0; i < 7 - j; i++) {
   if(a[i] > a[i + 1]) {
    t = a[i + 1];
    a[i + 1] = a[i];
    a[i] = t;
   }
  }
}
for(i = 0; i < 7; i++) {
  printf("%d ", a[i]);
}
}
void main() {
int i = 0, j, t;
int a[7];
int flag;
printf("您随机的彩票是:  ");
srand((unsigned)time(NULL));
while(i < 7) {
a[i] = (rand() % 33) + 1;
  for(j = 0; j < i; j++) {
   if(a[i] == a[j]) {
    i--;
    break;
   }
  }
  i++;
}
for(j = 1; j <= 7; j++) {
  for(i = 0; i < 7 - j; i++) {
   if(a[i] > a[i + 1]) {
    t = a[i + 1];
    a[i + 1] = a[i];
    a[i] = t;
   }
  }
}
for(i = 0; i < 7; i++) {
  printf("%d ", a[i]);
}
printf("\n您对这猪彩票选好满意么? 1-满意。0-不满意(重新选择)\n请选择:");
scanf("%d", &flag);
if(flag == 1) {
  printf("您确认的彩票号是:\n");
  for(i = 0; i < 7; i++) {
   printf("%d ", a[i]);
  }
} 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));
}
}
 楼主| 橙子 发表于 2009-6-7 09:30:35 | 显示全部楼层
这个是个简单的∵,可以随意选一组1到33的号。
因为随机种子要用时间来随机,所以,太快的输入0,就能连续1到3次得到同样的结果。
回复

使用道具 举报

田野 发表于 2009-6-7 10:44:19 | 显示全部楼层
橙子最近很勤奋
回复

使用道具 举报

小小白 发表于 2009-6-10 14:06:51 | 显示全部楼层
完全看不懂的说~~~
回复

使用道具 举报

楚天熙 发表于 2009-6-10 18:15:19 | 显示全部楼层
是不是乱码?
回复

使用道具 举报

风信子 发表于 2009-11-12 16:39:03 | 显示全部楼层
好长~有点没有明白~
回复

使用道具 举报

himself 发表于 2009-12-12 14:00:01 | 显示全部楼层

  1. #define UPPER_BOND (33)
  2. #define LOTTERY_NUM (7)
  3. #define MY_TRUE (1)
  4. #define MY_FALSE (0)

  5. unsigned auiLottery[LOTTERY_NUM] = {0};

  6. unsigned short IsNumberInLotteryArray(unsigned uiNumber)
  7. {
  8.     int i = 0;
  9.     for (i = 0; i < LOTTERY_NUM; i++)
  10.     {
  11.         if (uiNumber == auiLottery[i])
  12.         {
  13.             return MY_TRUE;
  14.         }
  15.     }
  16.     return MY_FALSE;
  17. }

  18. void main()
  19. {
  20.     int num = 0;
  21.     int i = 0;
  22.     printf("\n您随机的彩票是:  ");
  23.     srand((unsigned)time(NULL));
  24.     for (i = 0; i < LOTTERY_NUM;  )
  25.     {
  26.         num = rand()%UPPER_BOND;
  27.         /* 如果生成的数字有重复,则继续重新计算,否则输出 */
  28.         if (MY_TRUE == IsNumberInLotteryArray(num))
  29.         {
  30.             continue;
  31.         }
  32.         else
  33.         {
  34.             printf(" %d", num);
  35.             i++;
  36.         }
  37. }
  38. return;
  39. }
复制代码
良好的c语言编程风格的一些要点:
1. 用宏来代替单纯无意义的数字
2. 适当的注释
3. 变量都需要初始化
回复

使用道具 举报

阿董 发表于 2009-12-12 20:35:29 | 显示全部楼层
随机号码好得很!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

快速回复 返回顶部 返回列表