为什么我这个最小值总是算不对

img


#include<stdio.h>

#define        MAXLEN        110

int        isPrime( int n ) ;//判断一个整数是否是质数,是则返回1,否则返回0 
int        getResult( char word[] ) ;

int main()
{
    char    word[MAXLEN] ;

    scanf( "%s" , word ) ;            
    printf( "%d\n" , getResult( word ) );

    return 0;
}
#include<string.h>
int getResult( char word[] )
{
    int i,j,x,n,max,min,p;
    n=strlen(word);
    int a[130]={0};
    for(i=0;i<n;i++){
        x=word[i];
        a[x]+=1;
    }
    max=a[0];
    min=a[0];
    for(j=95;j<130;j++){
        if(a[j]>max){
            max=a[j];
        }
    }
    for(j=95;j<130;j++){
            if(a[j]<min&&a[j]!=0){
                min=a[j];
            }
    }
    p=max-min;
    if(isPrime(p)==1){
        return p;
    }
    else if(isPrime(p)==0){
        return -1;
    }
}

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果