C程序编写双色球代码问题

我准备用C语言写个随机选择双色球号码的软件.主要是红球的选择问题:红球是1-33中随机,6个球对应R1-R6,用RAND()可以解决R1的随机选择输出,但是R2-R6我不希望用类似if (R2==R1)就重新RAND()1次,直到R2和R1不同的办法.我目标是1-33中如果选择了17,就剔除17并在余下的1-16和18-33中重新随机.请行家指导下,或者我本身思路就错误了?请行家给个代码指导下.非常感谢.

/*DEV C++4.9.9.2编译通过如果用vc6,加几个#define来表示一下true,false,bool这三个符号就行了,分别是Bool,1,0O(∩_∩)O~*/ #include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>int main(void)
{
unsigned int count = 0;
int number[7] = { 0 };
bool next = true;

printf("这个程序用来生成双色球号码\n");
printf("输入要生成的注数:");
srand( (unsigned int)time(NULL) );
do{
fflush(stdin);
scanf(" %d",&count); for(int i = 1; i <= count; i++)
{
printf("\n\n");
number[6] = rand() % 16 + 1;
for(int j = 0; j < 6; j++)
{
number[j] = rand() % 33 + 1;
for(int k = 0;k < j; k++)
if(number[k] == number[j])
j--;
}
for(int k = 0; k < 5; k++)
for(int n = 0; n < 5 - k; n++)
if( number[n] > number[n+1])
{
int box = 0;
box = number[n+1];
number[n+1] = number[n];
number[n] = box;
}

for(int m = 0; m < 7; m++)
printf(" %s%3d",(0==m) ? "红 球:" : ( (6==m) ? "篮 球:" : ""),number[m]);
}
printf("\n\n输入注数,您可以再来几注:");
}while(true);

getch();
return 0;
} 贴出来经过快捷方式修饰的效果看看:
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-29
其实很简单!!根本不用楼上的代码。
我这个程序是调用随机函数产生0到19之间的随机数,保存15个互不相等得数!
希望对楼主有点思路提示。
(看来知识多了真是不好,解决问题总是往麻烦里想,想楼上,我也是刚学c语言)
#include "stdlib.h"
void setdata(int *);
main()
{int a[15],i;<br>setdata(a);<br>for (i=0;i<=14;i++)<br> printf(" %d",a[i]);<br>}
void setdata(int *a)
{int i,j;<br><br>for (i=0;i<=14;i++)<br> {<br> a[i]=rand()%20;<br> for (j=0;j<=i-1;j++)<br> {<br> while(a[i]==a[j])<br> {<br> a[i]=rand()%20;<br> }
}
}
}
第2个回答  2013-06-29
可以打电话到武汉人安医院去咨询!治鼻炎 找人安 小学生都知道
第3个回答  2013-06-29
用mfc很简单就可以搞定
相似回答