下面是题目和代码
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
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函数是求素数和输出的,感觉不太对。
希望可以帮忙找找,真的好难,枯了。