C语言 指针数组 类发牌问题

问题遇到的现象和发生背景

不知道如何利用指针进行编写该程序,我只能想到用随机数

 char a[80][3]={"叶","荷","梅","柳","日","月","光","湖","河","海","江","山","二","岭","两","千","万","春","秋","夏","冬","霜","雪","东","西","窗","落","含","相","和","多","少","红","明","碧","绿","斋","枯","肥","瘦","菁","晗"}
问题相关代码,请勿粘贴截图

img

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

char t[80][3]= {"叶","荷","梅","柳","日","月","光","湖","河","海","江","山","二","岭","两","千","万","春","秋","夏","冬","霜","雪","东","西","窗","落","含","相","和","多","少","红","明","碧","绿","斋","枯","肥","瘦"};
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
void buffer(int t[],int n)
{
    srand((unsigned)time(NULL));
    int temp[n];
    for(int i=0; i<n; i++)
    {
        temp[i]=rand()%n;
    }
    int xb[n],p=0;
    int k=0;
    while(k<n)
    {
        int tem=temp[k];
        int j2=0;
        int count=0;
        while(j2<n)
        {
            if(temp[j2]<tem)
            {
                count++;
            }
            j2++;
        }
        int j3=0;
        while(j3<k)//加上tem之前有多少个和tem相等的数
        {
            if(tem==temp[j3])
            {
                count++;
            }
            j3++;
        }
        t[p++]=count;
        k++;
    }
}
void prin(int *index,int n)
{
    for(int i=0; i<n*4; i++)
    {
        printf("%s",*(t+*(index+i)));
        if((i+1)%n==0&&i>0)
        {
            puts("");
        }
    }
    puts("");
}
int main()
{
    int max=225;
    int index[max];
    int n1=5,n2=7;
    buffer(index,n1*4);
    prin(index,n1);
    buffer(index,n2*4);
    prin(index,n2);
    return 0;
}