关于#一维数组#的问题,如何解决?

一维数组变二维

能运行,但是摇不出号了
下面是原一维,后面是我改写的二维

| 表头 |
| ------ |
| 单元格 |
| 单元格 |
| 单元格 |

#include 
#include 
#include
#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-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-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]return 0;
}
//我改写的二维
#include 
#include 
#include
#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]return 0;
}

1.你原来的BALL_TOTAL_CNT是个define,它是在编译阶段被替换成7的
而你改写之后的x是个变量,除非IDE支持C99,否则不可以用变量作为数组长度
2.你原来写ballGrplottery(ballArray,m);
你现在写ballGrplottery(ballArray[j][7],m);
你这传入的是数组里一个数,不是一维数组啊,类型都变了