//应该是if(*ptr_1==*ptr_2),而且跳回cgg:ptr_1不等于hq, ptr_2不等于hq+5;,后面太容易越界了,你这个太麻烦了,太容易出错
#include<stdio.h>
#include<stdlib.h>//rand函数需要
#include<time.h>//产生不同随机数需要
int main()
{
int ball[33]={0};
int hq[6];//双色球红球数组
int lq;//双色球蓝球变量
int i,j;//循环变量
int ls;//冒泡排序临时变量
int *ptr_1=hq;//指向数组首元素的指针
int *ptr_2;//指向数组末元素的指针
ptr_2=hq+5;
// cgg:
srand(time(NULL));//产生随机数,以时间为种子
for(i=0;i<6;)//给六个球赋随机数字
{
int tmp=rand()%33;
if(0==ball[tmp])
{
hq[i++]=tmp+1;
ball[tmp]=1;
}
}
/* for(i=0;i<6;i++)
{
for(j=0;j<5-i;j++)
{
if(ptr_1==ptr_2)
{
goto cgg;
}
ptr_2--;
}
ptr_1++;
}*/
lq=rand()%16+1;//产生1-16的随机数字
for(i=0;i<5;i++)//冒泡排序法
{
for(j=0;j<5-i;j++)
{
if(hq[j]>hq[j+1])//如果紧挨着前面一个数值大于后面一个
{
ls=hq[j];//把前面一个元素的值赋值ls里面(临时变量)
hq[j]=hq[j+1];//把后一个元素值赋给前面元素中
hq[j+1]=ls;//然后把存放在ls里的第一个数组元素值赋给后面一个元素中,实现排序
}
}
}
for(i=0;i<6;i++)//打印红球
{
printf("%d\t",hq[i]);
}
printf("\n");
printf("%d",lq);//打印蓝球
return 0;
}
|