[关闭]
@jimbo 2016-09-19T19:43:03.000000Z 字数 1545 阅读 752

吼吼哈嘿

统计类型

给出一个字符串,输出出现次数最多的三个字母,次数相同按照ASCII码由小到大排列,不缺分大小写,输出为小写字母。

  1. #include<stdio.h>
  2. int main(){
  3. char string[1005] = {0};
  4. int counts[26] = {0};
  5. scanf("%s", string);
  6. for (int i = 0; string[i] != '\0'; i++) {
  7. if ('a' <= string[i] <= 'z')
  8. {
  9. counts[string[i] - 'a']++;
  10. }
  11. else if ('A' <= string[i] <= 'Z')
  12. {
  13. counts[string[i] - 'A']++;
  14. }
  15. }
  16. int maxCount = -1;
  17. int maxNumber = -1;
  18. for (int i = 0; i < 26; i++)
  19. {
  20. if (maxCount < counts[i])
  21. {
  22. maxCount = counts[i];
  23. maxNumber = i;
  24. }
  25. }
  26. printf("%c\n", maxNumber + 'a');
  27. return 0;
  28. }

CCF中出现的类似题目:


  1. #include<stdio.h>
  2. int main(){
  3. int counts[1001] = {0};
  4. int numberOfDate = 0;
  5. int oneDate = 0;
  6. scanf("%d", &numberOfDate);
  7. for (int i = 0; i < numberOfDate; i++) {
  8. scanf("%d", &oneDate);
  9. counts[oneDate]++;
  10. }
  11. int max = -1;
  12. int theMostNumber = -1;
  13. for (int i = 0; i < 1001; i++) {
  14. if (counts[i] > max) {
  15. max = counts[i];
  16. theMostNumber = i;
  17. }
  18. }
  19. printf("%d\n", theMostNumber);
  20. return 0;
  21. }

数学类型

求1-n之间的质数

  1. #include<stdio.h>
  2. int main(){
  3. int n = 0;
  4. scanf("%d", &n);
  5. for (int i = 2; i < n; i++) {
  6. bool isZhiShu = true;
  7. for (int j = 2; j <= i / 2; j++) {
  8. if (i % j == 0) {
  9. isZhiShu = false;
  10. break;
  11. }
  12. }
  13. if (isZhiShu)
  14. {
  15. printf("%d ", i);
  16. }
  17. }
  18. printf("\n");
  19. return 0;
  20. }

求a,b两个数的最小公约数 最大公倍数

  1. #include<stdio.h>
  2. // 辗转相除法
  3. int gcd(int a, int b) {
  4. if (!b) {
  5. return a;
  6. } else {
  7. return gcd(b, a%b);
  8. }
  9. }
  10. int main(){
  11. int a = 0;
  12. int b = 0;
  13. scanf("%d %d", &a, &b);
  14. // 最大公约数
  15. int maxCommon = -1;
  16. if (a > b) {
  17. maxCommon = gcd(a, b);
  18. printf("%d\n", maxCommon);
  19. } else {
  20. maxCommon = gcd(b, a);
  21. printf("%d\n", maxCommon);
  22. }
  23. // 最小公倍数
  24. printf("%d\n", a * b / maxCommon);
  25. return 0;
  26. }

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
求100 - 999的水仙花数

  1. #include<stdio.h>
  2. int nnn(int n) {
  3. return n * n * n;
  4. }
  5. int main(){
  6. for (int i = 100; i <= 999; i++) {
  7. int n3 = i % 10;
  8. int n2 = i /10 % 10;
  9. int n1 = i / 100;
  10. int n = nnn(n1) + nnn(n2) + nnn(n3);
  11. if (n == i)
  12. {
  13. printf("%d ", n);
  14. }
  15. }
  16. printf("\n");
  17. return 0;
  18. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注