写了一个C语言代码,直接生成错误,不知道哪有问题。

下面是题目和代码

img


#include 
#include 
#include 


void maxn_minn(int s[], int* maxn, int* minn);
int prime(int x);

int main(int argc, char const* argv[])
{
    char s[100];
    int* maxn, * minn, x;
    scanf_s("%s", &s);
    printf("%s", s);
    maxn_minn(s[100], maxn, minn);
    x = *maxn - *minn;
    prime(x);
    return 0;
}

void maxn_minn(int s[], int* maxn, int* minn) {
    int* t = *s;
    char a[100] = (char*)malloc(100);
    for (int i = 0; t[i] != 0; i++) {
        for (int j = 0; j < i; j++, a[j]++) {
            if (t[i] == t[j])t[i] = 0;
        }
    }
    *maxn = 0;
    for(int j = 0; a[j] != 0; j++) {
        if (a[j] >= *maxn)*maxn = a[j];
        else if (a[j] <= *minn)*minn = a[j];
    }
}

int prime(int x) {
    for (int i = 2; i <= sqrt(x) + 1; i++) {
        if (x % i == 0) { 
            printf("No Answer\n");
            printf("0\n");
            return 0;
        }
    }
    printf("Lucky Word\n");
    printf("%d\n", x);
}

maxn—minn函数是求最多数量和最少的,思路是将重复的赋值为零,最终求个数,感觉有点麻烦。
prime函数是求素数和输出的,感觉不太对。
希望可以帮忙找找,真的好难,枯了。

int maxn, minn, x;
scanf_s("%s", s,100);
printf("%s", s);
maxn_minn(s, &maxn, &minn);
char * a = (char * )malloc(100);