难点在于怎么找出最多和最少的。一开始没有想到双重循环,好菜啊哈哈哈
使用双重循环,用中间变量即可
#include <stdio.h>
#include <string.h>
#include <math.h>
int max_min(char s[],int length){
int maxn = 0;
int minn = 100;
for(int i = 0;i<length;i++){
int temp1 = 0;
int temp2 = 0;
for(int j = 0;j<length;j++){
if(s[j] == s[i]){
temp1++;
temp2++;
}
}
if(temp1 > maxn){
maxn = temp1;
}
if(temp2 < minn){
minn = temp2;
}
}
return maxn - minn;
}
int isprime(int a){
if(a == 0 || a ==1){
return 0;
}
else if(a == 2 || a==3 || a== 5){
return 1;
}
else{
int flag = 1;
for(int i = 2;i<=a;i++){
for(int j = 2;j<=(int)sqrt(a);j++){
if(a%j == 0){
flag = 0;
break;
}
}
}
return flag;
}
}
int main(){
char s[100];
scanf("%s",s);
int b = max_min(s,strlen(s)); //返回最多字符次数减最小字符次数 int a = isprime(b); //判断是否为素数
if(a){
printf("Lucky Word\n");
printf("%d",b);
}
else{
printf("No Answer\n");
printf("0");
}
return 0;
}