c语言70分求助
查看原帖
c语言70分求助
1535370
NeuroNO1楼主2024/12/25 18:21

来自蒟蒻的求助qwq

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <stdbool.h>
bool isprime(int n){
	int h=sqrt(n);
	for(int i=2;i<=h;i++){
		if(h%i==0){
			return false;
		}
	}
	return true;
}
int main(){
	char str[120];
	gets(str);
	int cnt[26]={0};
	char *p=str;
	while(*p){
		if(*p=='a')cnt[0]++;
		if(*p=='b')cnt[1]++;
		if(*p=='c')cnt[2]++;
		if(*p=='d')cnt[3]++;
		if(*p=='e')cnt[4]++;
		if(*p=='f')cnt[5]++;
		if(*p=='g')cnt[6]++;
		if(*p=='h')cnt[7]++;
		if(*p=='i')cnt[8]++;
		if(*p=='j')cnt[9]++;
		if(*p=='k')cnt[10]++;
		if(*p=='l')cnt[11]++;
		if(*p=='m')cnt[12]++;
		if(*p=='n')cnt[13]++;
		if(*p=='o')cnt[14]++;
		if(*p=='p')cnt[15]++;
		if(*p=='q')cnt[16]++;
		if(*p=='r')cnt[17]++;
		if(*p=='s')cnt[18]++;
		if(*p=='t')cnt[18]++;
		if(*p=='u')cnt[20]++;
		if(*p=='v')cnt[21]++;
		if(*p=='w')cnt[22]++;
		if(*p=='x')cnt[23]++;
		if(*p=='y')cnt[24]++;
		if(*p=='z')cnt[25]++;
		p++;
	}
	int max=0,min=100,n;
	for(int i=0;i<26;i++){
		if(max<cnt[i]){
			max=cnt[i];
		}
	}
	for(int i=0;i<26;i++){
		if(cnt[i]==0){
			cnt[i]=100000;
		}
	}
	for(int i=0;i<26;i++){
		if(min>cnt[i]){
			min=cnt[i];
		}
	}
	n=max-min;
	if(n==1||n==0){
		printf("No Answer\n0");
		return 0;
	}
	if(isprime(n)){
		printf("Lucky Word\n%d",n);
	}else{
		printf("No Answer\n0");
	}
	return 0;
}

2,6,10测试点没过,求解答

2024/12/25 18:21
加载中...