C - Palindromes——常量数组运用

男娘i 2022-06-18 05:37 211阅读 0赞

think:
1常量数组运用
2isalpha(char ch)——判断是否为英文字母
Presentation error错误
Hint:In addition, after each output line, you must print an empty line.

Vjudge题目链接

以下为Presentation error代码——每组数据输出后应输出换行

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. char st[] = "A 3 HIL JM O 2TUVWXY51SE Z 8 ";
  4. char tra(char ch)
  5. {
  6. if(isalpha(ch))
  7. return st[ch-'A'];
  8. else
  9. return st[ch-'0'+25];
  10. }
  11. int main()
  12. {
  13. char st1[24];
  14. int i, p, m;
  15. while(scanf("%s", st1) != EOF)
  16. {
  17. int len = strlen(st1);
  18. p = 1, m = 1;
  19. for(i = 0; i < (len+1)/2; i++)
  20. {
  21. if(st1[i] == '0')
  22. st1[i] = 'O';
  23. if(st1[i] != st1[len-1-i])
  24. p = 0;
  25. if(st1[i] != tra(st1[len-1-i]))
  26. m = 0;
  27. }
  28. if(p == 0 && m == 0)
  29. printf("%s -- is not a palindrome.\n", st1);
  30. else if(p == 1 && m == 0)
  31. printf("%s -- is a regular palindrome.\n", st1);
  32. else if(p == 0 && m == 1)
  33. printf("%s -- is a mirrored string.\n", st1);
  34. else
  35. printf("%s -- is a mirrored palindrome.\n", st1);
  36. }
  37. return 0;
  38. }

以下为accepted代码

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. char st[] = "A 3 HIL JM O 2TUVWXY51SE Z 8 ";
  4. char tra(char ch)
  5. {
  6. if(isalpha(ch))
  7. return st[ch-'A'];
  8. else
  9. return st[ch-'0'+25];
  10. }
  11. int main()
  12. {
  13. char st1[24];
  14. int i, p, m;
  15. while(scanf("%s", st1) != EOF)
  16. {
  17. int len = strlen(st1);
  18. p = 1, m = 1;
  19. for(i = 0; i < (len+1)/2; i++)
  20. {
  21. if(st1[i] == '0')
  22. st1[i] = 'O';
  23. if(st1[i] != st1[len-1-i])
  24. p = 0;
  25. if(st1[i] != tra(st1[len-1-i]))
  26. m = 0;
  27. }
  28. if(p == 0 && m == 0)
  29. printf("%s -- is not a palindrome.\n", st1);
  30. else if(p == 1 && m == 0)
  31. printf("%s -- is a regular palindrome.\n", st1);
  32. else if(p == 0 && m == 1)
  33. printf("%s -- is a mirrored string.\n", st1);
  34. else
  35. printf("%s -- is a mirrored palindrome.\n", st1);
  36. printf("\n");
  37. }
  38. return 0;
  39. }

发表评论

表情:
评论列表 (有 0 条评论,211人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C常量

    常量 (一)整数型常量 十进制:不能以0开头 八进制:以0为前缀 十六进制:以0x或0X为前缀 (二)浮点数常量 只能十进制,可无整数部分或小数部分,如“.3”或“

    相关 c++】常量

    C++ 常量 常量是固定值,在程序执行期间不会改变。 但是这样不会改变的值在c++中分为两种一种是const关键字修饰的值另一种是字面量。 常量可以是任何的基本数据类

    相关 C#常量

    常量:“不会改变的量” 我们平时书写的数字(比如12.85)、字符(比如'F')、字符串(比如"谢谢"),它们都属于“字面常量”。 有一些常量既重要又容易出错,比如圆周率π