- 前言
- 答案
- 1.源代码
- 总结
前言
该题目来自洛谷题库中的字符串第三题,有一定难度。
答案 1.源代码
#define _CRT_SECURE_NO_WARNINGS 1 #includeint main() { char dh[101],eh[100]; int ch[25], fh[100], a, b, c, d = 0, e, f, g=0,h,i,j; ch[0] = 2; for (a = 3; a <= 100; a++) { for (b = 2; b < a; b++) { c = 1; if (a % b == 0) { //找出100以内的素数,并用数组ch存起来。 c = 0; break;}} if (c == 1) { d+=1; ch[d] = a; }} //for (d = 0; d <= 24; d++) { printf("%dn",ch[d]); }//用以判断该段代码的可行性 for (d = 0; d <=100; d++) { scanf("%c",&dh[d]); if (dh[d] == 'n') { dh[d] = ' '; e = d;break; }//输入字符串 } //for (d = 0;dh[d]!=' ' ; d++) { printf("%c", dh[d]); }//用以输出判断该段代码的可行性 for (d = 0; d <= e-1; d++) { g = 0; for (c = 0; c <= e-1;c++) { if (dh[d] == dh[c]) { g += 1; fh[d] = g; }//找出每一个字母出现的次数并用fh数组存起来 } }//printf("%d",fh[0]);//用以输入qqqq试一试该代码能否可行 h = fh[0]; for (d = 0; d <= e - 1; d++) { if(fh[d] > h){ h = fh[d];}//找出某字母出现次数的最大值 } i = fh[0]; for (d = 0; d <= e - 1;d++) { if (fh[d] < i) { i = fh[d]; }//找出某字母出现次数的最小值 } //printf("h=%d",h);printf("i=%d", i);//用以判断输入一段字符串能否找出出现最大或最小次数的字母 a = h - i;//出现最大系数-出现最小次数 j = 0; for (d = 0; d <= 24;d++) { if (a == ch[d]) { j = 1; //判断a是否为100以内的质数 } else; } if(j==1){ printf("Lucky Wordn%d", a); }//完成题目要求的输出 else printf("No Answern0"); return 0; }
总结
该代码涉及字符数组和整形数组,有一定的综合性,每段代码的作用博主以予注释方便理解。


![C语言实现洛谷题库中的 P1125 [NOIP2008 提高组] 笨小猴 C语言实现洛谷题库中的 P1125 [NOIP2008 提高组] 笨小猴](http://www.mshxw.com/aiimages/31/873571.png)
