一维数组变二维
能运行,但是摇不出号了
下面是原一维,后面是我改写的二维
| 表头 |
| ------ |
| 单元格 |
| 单元格 |
| 单元格 |
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#define random(x) (rand()%x+1)
#define BALL_TOTAL_CNT 7
int isExisting(int red,char ballNum[]);
int rank1(char ballArray[]);
int rank2(char ballArray[]);
int ballGrplottery(char ballArray[],int m);
int main()
{
int i,n,j,m;
printf("获取注数:");
scanf("%d",&n);
printf("0.升序排列 1.降序排列\n请输入排序方式:");
scanf("%d",&m);
char ballArray[BALL_TOTAL_CNT]={0};
srand((unsigned)time(NULL));
printf("摇号结果为红球\t\t\t\t\t\t蓝球是\n");
for(j=1;j<=n;j++)
{
printf("第%d注号码:",j);
ballGrplottery(ballArray,m);
for(i=0; i<BALL_TOTAL_CNT-1; i++)
printf("%d\t",ballArray[i]);
ballArray[i]=random(16);
printf("%d",ballArray[6]);
printf("\n");
}
return 0;
}
int ballGrplottery(char ballArray[],int m)
{
int i;
for(i=0; i<BALL_TOTAL_CNT-1; i++)
{
int f=0;
int n = random(33);
f=isExisting(n,ballArray);
if(f==1)
i--;
else
ballArray[i]=n;
}
if(m==0)
{rank1(ballArray); }
else
{rank2(ballArray);}
return 0;
}
int isExisting(int n,char ballNum[])//查重
{
int i;
if(n>33 || n<0)
return -1;
for(i=0;i<6;i++)
{
if(n==ballNum[i])
{
return 1;
}
}
return 0;
}
int rank1(char ballArray[])//从小到大排序
{
int i,j,o;
for(i=0;i<6;i++)
{
for(j=i+1;j<6;j++)
{
if(ballArray[i]>ballArray[j])
{
o=ballArray[i];
ballArray[i]=ballArray[j];
ballArray[j]=o;
}
}
}
return 0;
}
int rank2(char ballArray[])//从大到小排序
{
int i,j,o;
for(i=0;i<6;i++)
{
for(j=i+1;j<6;j++)
{
if(ballArray[i]<ballArray[j])
{
o=ballArray[i];
ballArray[i]=ballArray[j];
ballArray[j]=o;
}
}
}
return 0;
}
//我改写的二维
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#define random(x) (rand()%x+1)
int isExisting(int red,char ballNum[][7]);
int rank1(char ballArray[][7]);
int rank2(char ballArray[][7]);
int ballGrplottery(char ballArray[][7],int m);
int x;
int main()
{
int i,j,m;
printf("获取注数:");
scanf("%d",&x);
printf("0.升序排列 1.降序排列\n请输入排序方式:");
scanf("%d",&m);
char ballArray[x][7];
srand((unsigned)time(NULL));
printf("摇号结果为红球\t\t\t\t\t\t蓝球是\n");
for(j=1;j<=x;j++)
{
printf("第%d注号码:",j);
ballGrplottery(ballArray[j][7],m);
for(i=0; i<6; i++)
printf("%d\t",ballArray[j][i]);
ballArray[j][6]=random(16);
printf("%d",ballArray[6]);
printf("\n");
return 0;
}
}
int ballGrplottery(char ballArray[][7],int m)
{
int i;
for(i=0; i<6; i++)
{
int f=0;
int n = random(33);
f=isExisting(n,ballArray);
if(f==1)
i--;
else
ballArray[i][7]=n;
}
if(m==0)
{rank1(ballArray); }
else
{rank2(ballArray);}
return 0;
}
int isExisting(int n,char ballNum[][7])//查重
{
int i;
if(n>33 || n<0)
return -1;
for(i=0;i<6;i++)
{
if(n==ballNum[n][i])
{
return 1;
}
}
return 0;
}
int rank1(char ballArray[][7])
{
int i,j,o;
for(i=0;i<6;i++)
{
for(j=i+1;j<6;j++)
{
if(ballArray[x][i]>ballArray[x][j])
{
o=ballArray[x][i];
ballArray[x][i]=ballArray[x][j];
ballArray[x][j]=o;
}
}
}
return 0;
}
int rank2(char ballArray[][7])//从大到小排序
{
int i,j,o;
for(i=0;i<6;i++)
{
for(j=i+1;j<6;j++)
{
if(ballArray[x][i]<ballArray[x][j])
{
o=ballArray[x][i];
ballArray[x][i]=ballArray[x][j];
ballArray[x][j]=o;
}
}
}
return 0;
}