所以你的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
}