#include<stdio.h>
#include<math.h>
int prime(int x);
int main()
{
int i,j,k,s,m,n,max,min;
char a[100];
int b[100];
while(scanf("%s",a))
{
for(j=0;j<100;j++)
{
b[j]=1;
if(a[j]=='\0')
{
k=j;
break;
}
}
for(m=0;m<k;m++)
{
for(n=m+1;n<k;n++)
{
if(a[m]==a[n])
{
b[m]++;
}
}
}
max=b[0];
min=b[0];
for(m=0;m<k;m++)
{
if(b[m]>max)
max=b[m];
if(b[m]<min)
min=b[m];
}
s=max-min;
if(prime(s))
{
printf("Lucky Word\n");
printf("%d\n",s);
}
else
{
printf("No Answer\n");
printf("0\n");
}
}
return 0;
}
int prime(int x)
{
int i,a=0,k;
if(x<2)
return 0;
k=(int)sqrt(x);
for(i=2;i<=k;i++)
if(x%i==0)
break;
if(i>k)
return 1;
else
return 0;
}
[ New Thread ]
Problem 1124 >> 为什么输出超限了? |
201803140220 @ 2018-12-10 19:55:50
|
admin @ 2018-12-18 10:13:48
回201803140220 :
看这段代码 for(m=0;m<k;m++) { for(n=m+1;n<k;n++) { if(a[m]==a[n]) { b[m]++; } } } 假如输入数据(假如这是个单词 hheelloo 那么b[]数组的值为 21212121 max=2 min=1 实际上max=2 min=2 |
admin @ 2018-12-18 10:37:16
另
统计字母在单词重出现的次数 可以这样 char a[100]; gets(a); int b[26]; for(int i=0;i<26;i++) b[i]=0; for(int i=0;i<strlen(a);i++) b[a[i]-'a']++; 这样统计出来的字母是从小到大序列 |
201803140220 @ 2019-03-26 20:07:34
#include<stdio.h>
#include<math.h> #include<string.h> int prime(int x); int main() { int k,s,i,max,min; char a[100]; int b[26]={0}; while(scanf("%s",a)) //输入字符串 { k=strlen(a); for(i=0;i<=k;i++) //计算相同字母数 b[a[i]-'a']++; for(i=0;i<26;i++) //初始化max,min if(b[i]!=0) { max=b[i]; min=b[i]; break; } for(i=0;i<26;i++) //计算最大及最小字母数 if(b[i]!=0) { if(b[i]>max) max=b[i]; if(b[i]<min) min=b[i]; } s=max-min; //计算差值 if(prime(s)) //判断是否为素数分类输出 { printf("Lucky Word\n"); printf("%d\n",s); } else { printf("No Answer\n"); printf("0\n"); } for(i=0;i<26;i++) //重置数组b b[i]=0; } return 0; } int prime(int x) { int i,k; if(x<2) return 0; k=sqrt(x); for(i=2;i<=k;i++) if(x%i==0) break; if(i>k) return 1; else return 0; } -------------------------------------------------------------- 仍是输出超限 |
201803140220 @ 2019-03-26 20:08:05
求解
|
201703120121 @ 2019-03-26 20:26:01
while(scanf("%s",a)) //输入字符串
换成while(scanf("%s",a)!=EOF) //输入字符串 |
201803140220 @ 2019-03-26 21:15:26
多谢
|