关于彩票的c语言,结果不对,求大神指点。

Python011

关于彩票的c语言,结果不对,求大神指点。,第1张

1、c语言的数组下标从0开始

所以你的r[6]这个数组,它的有效下标是0到5.

你的

scanf("%d,%d,%d,%d,%d,%d,%d",&cai[1].re.r[1],&cai[1].re.r[2],&cai[1].re.r[3],&cai[1].re.r[4],&cai[1].re.r[5],&cai[1].re.r[6],&cai[1].y)

还有

for(j=1j<7j++){

for(q=1q<7q++){

if(cai[1].re.r[j]==cai[i].re.r[q])

m=m+1

}

}

里面的下标都是从1到6的,这些都需要改为从0到5.

2、你的i没什么作用

在while循环里,每次都有

i=1

i=i+1

这样每次都用的是i=2,没有继续加下去。

从你的代码看,i是没什么用的。

struct caipiao cai[177]

这个也不需要,只要定义两个caipiao变量就够了

看着你逻辑挺乱的,我就动手自己写了一个。

共同学习。

#include <stdio.h> 

#include <time.h>

int main()

{

int arr[7] = {0}

int index = 0

int flag = 0

srand((unsigned)time(NULL))

for(index=0index<7index++)

{

int t

int j = 0

while(1) //死循环,只有当flag为0,即不重复时才退出

{

flag = 0

t = rand()%36+1

for(j=0j<indexj++) //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("\n")

return 0

}