HDU OJ 1004问题: C语言中有没有可以储存字符串的数组?

类似 a[1]=asdasdads
a[2]=zxczxczxc
这样。

        看了下网上说二维数组可以实现,我试了一下程序崩溃了。。
        这是我的代码
 #include<stdio.h>
int max(int cnt[],int n);
int main(void)
{
    int n;
    while(scanf("%d",&n)&&n!=0){
    char a[1010][10];
    int cnt[1010]={0};
        if(n>0&&n<=1000){
            for(int i=0;i<n;i++){           //输入颜色 
                scanf("%s",&a[i][10]);
            }
            for(int j=0;j<n;j++){         //判断出现颜色出现次数 
                for(int k=j+1;k<n;k++){
                    if(a[j][10]==a[k][10]) cnt[j]++;
                    }
                }
            int p;
            p=max(cnt,n);
            printf("%s\n",a[p][10]);             <<-- debug到这里就崩溃了
            }
        }

    return 0;
} 

 int max(int cnt[],int n){          //返回 有最大出现次数 的位置 
    int z;
    for( z=n-1;z>=0;z--){
        for(int x=z-1;x>=0;x--){
            if(cnt[z]<cnt[x])
            break;
            if(x==0) 
            return z;
         }


     }
     z=z+1;
     return z;
 }

http://www.cnblogs.com/kuangbin/archive/2011/07/26/2117251.html