#include <stdioh>
#include <stdlibh>
#include <stringh>
#include <timeh>
void selectsort(int x, int n) {
int i, j, min,t;
for (i = 0; i < n - 1; i++) {
min = i;
for (j = i + 1; j < n; j++) {
if ((x + j) < (x + min)) min = j;
}
if (min != i) {
t = (x + i);
(x + i) = (x + min);
(x + min) = t;
}
}
}
void select(int m,int n,int k) {
int num[36],tmp[36],t;
char filename[] = "C:\\2011\\随机号码txt"; // 选择你需要的路径
FILE fp;
srand((unsigned)time(NULL));
fp = fopen(filename,"wt");
if(fp == NULL) {
printf("打开文件%s错。\n",filename);
exit(1);
}
for(int i = 0;i < k;++i) {
for(int j = 1;j <= m;++j) tmp[j] = j;
for(j = 0;j < n;++j) {
t = (unsigned)rand()%m + 1;
if(tmp[t] != 0) {
num[j] = t;
tmp[t] = 0;
}
else --j;
}
selectsort(num,n);
for(j = 0;j < n;++j) {
fprintf(fp,"%02d ",num[j]);
printf("%02d ",num[j]);
}
fprintf(fp,"\n");
printf("\n");
}
fclose(fp);
}
int main() {
int m,n,k;
printf("被选号码数 : ");
scanf("%d",&m);
printf("可选号码数 : ");
scanf("%d",&n);
printf("所选组数 : ");
scanf("%d",&k);
select(m,n,k);
return 0;
}
/6+1兑奖程序 中奖规则:6+1特等奖,6+0 一等奖,5+1 二等奖,5+0 三等奖;/
#include<stdioh>
#include<stdlibh>
#include<timeh>
int a[7];
int b[7]={-1,-1,-1,-1,-1,-1,-1};
int c;
int i,j,k,flag=1;
void main()
{
time_t t;
srand((unsigned)time(&t));
while(flag)
{
//
printf("**6+1兑奖程序\n姓名: \n");
printf("中 奖 号 码 为:");
for(i=0;i<6;i++)/产生前六个数/
{
while((b[i]<0)||(b[i]>9))
{
b[i]=rand()%10;
for(j=0;j<i;j++)
{
if((i>0)&&(b[i]==b [j]))
{
b[i]=-1;
break;
}
}
}
}
/产生第7位数/
while((b[6]<0)||(b[6]>9))
{
b[i]=rand()%34;
}
for(i=0;i<5;i++)/给前6个数排序/
for(j=0;j<5-i;j++)
for(i=0;i<7;i++)
{
if(b[i]<10)
{
printf("%d",b[i]);
}
else
printf("%3d",b[i]);
}
printf("\n");
printf("\n");
printf("请输入你的7个号码,以空格隔开: ");
scanf("%d%d%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6]);
for(i=0;i<5;i++)
for(j=0;j<5-i;j++);
printf("\n");
//
printf("你输入的号码为:");
for(i=0;i<6;i++)
{
if(a[i]<10)
{
printf("%d",a[i]);
}
else
printf("%3d",a[i]);
}
if(a[6]<10)
{
printf("%d\n",a[6]);
}
else
printf("%3d\n",a[6]);
printf("\n");
/判断彩民输入的号码是否正确(即前6个数在0~33之间,且无重复,第7个数在0~16之间 flag为标志位/
flag=0;
if(a[0]<0)
flag=1;
if(a[5]>9)
flag=1;
if(a[6]<0)
flag=1;
else if(a[6]>9)
flag=1;
for(i=0;i<5;i++)
{
if(a[i]==a[i+1])
flag=1;
}
//
if(flag==1)
{
printf("你输入的号码不正确,请重新输入\n");
printf("\n");
}
}
//
//
/判断中奖情况/
for(i=0,k=0;i<6;i++)
{
if(a[i]==b[i])
k++;
else
break;
}
j=0;
if(a[6]==b[6])
j=1;
/ 中奖规则:6+1一等奖,6+0 二等奖,5+1 三等奖,5+0或4+1 四等奖,4+0或3+1 五等奖,2+1或1+1或0+1六等奖/
if((k==6)&&(j))
printf("恭喜你中了特等奖\n");
else if((k==6)&&(!j))
printf("恭喜你中了一等奖\n");
else if(((k==5)&&(j))||((k==5)&&(!j)))
printf("恭喜你中了二等奖\n");
else if(((k==4)&&(!j))||((k==4)&&(j)))
printf("恭喜你中了三等奖\n");
else
printf("没中奖\n");
printf("\n");
}
/结束/
//使用cmd的定时关机
private void button1_Click(object sender, EventArgs e)
{
if (DateTimeNowHour == intParse(comboBox1Text) && DateTimeNowMinute == numericUpDown2Value)
{
msg=MessageBoxShow("您现在就要关机吗?建议先取消,设置具体时间关机!", "温馨提示!", MessageBoxButtonsYesNo, MessageBoxIconExclamation);
if ( msg== DialogResultYes)
{
SystemDiagnosticsProcessStart("cmdexe", "shutdown -f -s -t 1"); //强制一秒倒计时关机!
}
else
return;
}
我只发个核心代码吧
for (int i1 = 1; i1 <= 36; i1++)
for (int i2 = 1; i2 <= 36; i2++)
for (int i3 = 1; i3 <= 36; i3++)
for (int i7 = 1; i7 <= 36; i7++)
cout << i1 << " " << i2 << " " << << i7 << endl;
你要枚举所有情况,情况总数是36的7次方,所以运行时间很长,可能需要大约1分钟。
并且所有情况都输出到文件的话,输出文件会很大
以上就是关于C++编程:写一个产生K组福彩M选N的机选彩票号码程序(如K=5, M=35, N=7,表示机选5组35选7的号码)。全部的内容,包括:C++编程:写一个产生K组福彩M选N的机选彩票号码程序(如K=5, M=35, N=7,表示机选5组35选7的号码)。、求一用C++编写的彩票6+1兑奖程序,要C++,不要C!不要把printf都带来了,我要的是全部C++!求高手!!!!、用C#编一个彩票机程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)