c语言函数调用,比较菜,希望来个哥帮帮我

c语言main函数内接收不少于5个人的姓名拼音,调用一个函数按照姓氏拼音首字母排序后输出。

定义二维数组char name[100][40];接收字符串,用冒泡等排序方法排序就可以了,字符串比较用strcmp()函数。
如下:

#include <stdio.h>
#include <string.h>

void bubble_sort(char a[][40],int n)
{
    int i,j;
    char t[40];
    for(i=0;i<n-1;i++)
    {
        for (j=0;j<n-1-i;j++)
        {
            if(strcmp(a[j],a[j+1])>0)
            {
                memset(t,0,40);
                memcpy(t,a[j],strlen(a[j]));
                memset(a[j],0,40);
                memcpy(a[j],a[j+1],strlen(a[j+1]));
                memset(a[j+1],0,40);
                memcpy(a[j+1],t,strlen(t));
            }
        }
    }
}

int main()
{
    char a[100][40];
    int i,j,n;
    printf("请输入字符串个数:");
    scanf("%d",&n);
    printf("请输入%d个字符串:\n",n);
    for(i=0;i<n;i++)
        gets(a[i]);
    bubble_sort(a,n);
    //输出
    for(i=0;i<n;i++)
        printf("%s\n",a[i]);
    return 0;
}