❶ 我用c语言编了一个产生一组33选7彩票的程序。有点问题,求助
for循环要改成下面这样:
for(i = 0; i < 6; i++) {
a[i+1] = ((rand() % 33) + 1);
printf("第%d个数第%d次是%d\n",(i + 2),n,a[i+1]);
for(j = 0; j <= i; j++) {
if(a[i + 1] == a[j]) {
break; //跳出这层for 不循环完。
}
} //在 for 外面来判断有没有相同的。
if (i < j) { //如果比到a[0]都不重复,n等于1. 等待下次计数。
n = 1;
}
else
{
i--;
n++; //和前面的数重复,重新产生本数,n+1.
}
}
❷ C语言编程 很急!!!星期二要
悬赏100分
我马上就做~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.一般不会出现各个位重复出现的数字超过3个。
2.一般不会出现各个位的数字累加之和不在10~40之间。
3.一般不会出现超过连续2个位数相同。
4.一般不会出现5个以上位数的数字都是奇数或者偶数。
5.一般不会出现5个以上位数的数字都大于5.
6.一般不会出现5个以上位数的数字都小于5.
就是6个子问题~~~
耐心一些~~
❸ 用c语言编写。 打印一张7位数的随机彩票,数字在1到36之间,且不能有重复数字。
这里说个大概啊 然后你自己实现 首先设定随机数0-1函数啊 其次设定范围 也就是乘以36 然后就是四舍五入 之后是防止数据相同 加油 祝成功?
❹ c语言彩票兑奖程序
#include<stdio.h>
voidmain()
{
inta[]={1,2,3,4,5,6,7};
intb[7],i,j,count=0,max=0,maxflag;
for(i=0;i<7;i++)
scanf("%d",&b[i]);
i=0;
while(i<7)
{
j=0;
count=0;
if(b[i]==a[j])
while(i<7&&j<7&&b[i]==a[j])i++,j++,count++;
else
i++;
if(max<count){max=count;maxflag=i;}
}
count=max;
if(count==7)printf("特等奖 ");
elseif(count==6)
{
if(maxflag==7)
printf("二等奖 ");
else
printf("一等奖 ");
}
elseif(count==5)
{
if(maxflag==7)
printf("三等奖 ");
else
printf("二等奖 ");
}
elseif(count==4)
{
if(maxflag==7)
printf("四等奖 ");
else
printf("三等奖 ");
}
elseif(count==3)
{
if(maxflag==7)
printf("五等奖 ");
else
printf("四等奖 ");
}
elseif(count==2&&maxflag!=7)
printf("五等奖 ");
else
printf("没中奖 ");
}
❺ 用c语言编写体育彩票10选7(7个号码可以重复)的程序,哪位帮帮忙
在vc下是用不了的;
好像vc没有random函数。
#include "stdlib.h" /*调用随机函数*/
main()
{
int i,n,j;
clrscr();/*清屏*/
printf("please input the groups: \n");
scanf("%d",&n);
j=n+1;
while(n)
{
randomize(); /*初始化随机数产生器*/
printf("the %3d groups: ",j-n);
for(i=1;i<8;i++)
printf("%d ",random(10)); /*产生0到(10-1)之间的随机数*/
printf("\n");
n--;
getch();
}
}
❻ 7位数彩票 C语言
不涉及彩票,就程序而言,
第1种情况是 可将7位数与10的取模....然后保存在一个数组中,要比较三个数相等的,要3条if判断,12/13/23如相等则为真,有35个组合.(123/124/125....127/234/235/....237/.....)就是说要将123三个数抽象为一个函数A,再调用35次.
第2种各位的总和少于40大于10, 可将7位数与10的取模....然后保存在一个数组中.再求sum
第3种情况和第1种情况类似而且简单多了.
第4种情况,在数组中设这奇数和偶数的标志i和j,当i和j=5时......
第5和6种情况,同样在在数组中比较数字 是否大于或小于5的数,设的标志i和j,当i和j=5时.....
❼ C语言随机彩票问题
看着你逻辑挺乱的,我就动手自己写了一个。
共同学习。
#include<stdio.h>
#include<time.h>
intmain()
{
intarr[7]={0};
intindex=0;
intflag=0;
srand((unsigned)time(NULL));
for(index=0;index<7;index++)
{
intt;
intj=0;
while(1) //死循环,只有当flag为0,即不重复时才退出
{
flag=0;
t=rand()%36+1;
for(j=0;j<index;j++) //for循环,变量当前arr数组中的元素
if(arr[j]==t) //如果存在重复的
{
flag=1; //则标记flag变量为1
break;
}
if(!flag) //如果flag==0则退出while死循环
break;
}
arr[index]=t; //存入数组
printf("%d",arr[index]); //输出到界面
}
printf(" ");
return0;
}
❽ C语言 实现模拟彩票的程序设计:随机产生7个数字(用C语言随机函数产生,[1,33]区间,七个数互
使用结构体链表模拟彩票的摇奖机,来保证每次随机都是不同的数字。
数组也可以模拟,但是删除元素比较麻烦,用链表更快捷。
定义数组指针,动态分配内存。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedefstructList{
intnumber;
structList*next;
}ArrayList;
ArrayList*createList(int);//创建链表,参数是链表的节点数
voidfreeList(ArrayList*);//循环释放所有节点的内存
intdeleteNode(ArrayList*,int);//删除节点,返回节点的数据
main(){
//动态创建内存
int*numbers=(int*)calloc(7,sizeof(int));
int*inNumbers=(int*)calloc(7,sizeof(int));
//动态创建数组链表存放1-33个编号
ArrayList*balls=createList(33);
inti;
srand((unsigned)time(NULL));
printf("请输入7个不同的数字(1-33): ");
for(i=0;i<7;i++){
*(numbers+i)=deleteNode(balls,rand()%(33-i));
scanf("%d",inNumbers+i);
}
printf("随机产生的7个数字是: ");
for(i=0;i<7;i++){
printf("%d",*(numbers+i));
}
printf(" 相同的数字: ");
//查找
intj;
for(i=0;i<7;i++){
for(j=0;j<7;j++){
if(*(numbers+i)==*(inNumbers+j)){
printf("%d",*(numbers+i));
break;
}
}
}
//释放内存
free(numbers);
free(inNumbers);
freeList(balls);
}
ArrayList*createList(intn){
ArrayList*head=NULL,*end=NULL,*node=NULL;
end=head=(ArrayList*)malloc(sizeof(ArrayList));//head在删除和插入节点时有用。不能删除head,也不能插入到head前面
inti;
for(i=1;i<=n;i++){
node=(ArrayList*)malloc(sizeof(ArrayList));
node->number=i;
end->next=node;
end=node;
}
end->next=NULL;
returnhead;
}
voidfreeList(ArrayList*head){
ArrayList*node=head;
while(head!=NULL){
head=head->next;
free(node);
node=head;
}
}
intdeleteNode(ArrayList*head,intindex){//index节点索引(0-32),返回被删除的球的编号
ArrayList*node=head->next,*temp=head;
inti=0,number;
while(i<index&&node!=NULL){
temp=node;
node=node->next;
i++;
}
if(node!=NULL){
number=node->number;
temp->next=node->next;
free(node);
}
returnnumber;
}
运行结果
❾ 彩票 36选7程序怎么编写
#include <stdio.h>
#include <stdlib.h>
void main()
{
int result[7] = {0};
int num = 0;
int i = 0;
srand((unsigned)time(0));//初始化随机种
while (i < 7)
{
int j = 0;
num = rand() % 36 + 1;//得到1-36的随机数
/* 判断是否已经存在 */
while (j < 7)
{
if (result[j] == num)
{
break;
}
j++;
}
/* 如果不存在保存数字 */
if (j == 7)
{
result[i] = num;
i++;
}
}
i = 0;
/* 打印 */
while (i < 7)
{
printf("%d \n",result[i++]);
}
}