跳至内容
CVBB ACM Team
用户工具
注册
登录
站点工具
搜索
工具
显示页面
修订记录
Copy this page
导出 PDF
反向链接
最近更改
媒体管理器
网站地图
注册
登录
>
最近更改
媒体管理器
网站地图
您在这里:
front_page
»
2020-2021
»
teams
»
namespace
»
常量数组
2020-2021:teams:namespace:常量数组
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
善用常量数组往往能简化代码。定义常量数组时无须指明大小,编译器会计算。 下面是两道例题 $WERTYU$($UVa10082$) <code c> #include<stdio.h> char s[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"; int main(){ int i, c; while((c = getchar()) != EOF){ for (i=1; s[i] && s[i]!=c;i++); if(s[i]) putchar(s[i-1]); else putchar(c); } return 0; } </code> 回文词($UVa401$) 输入一个字符串,判断它是否为回文串以及镜像串。输入字符串保证不含数字0。(使用常量数组) <code c> #include<stdio.h> #include<string.h> #include<ctype.h> const char* rev = "A 3 HIL JM O 2TUVWXY51SE Z 8 "; const char* msg[] = {"not a palindrome", "a regular palindrome", "a mirrored string", "a mirrored palindrome"}; char r(char ch) { if(isalpha(ch)) return rev[ch - 'A']; return rev[ch - '0' + 25]; } int main() { char s[30]; while(scanf("%s", s) == 1) { int len = strlen(s); int p = 1, m = 1; for(int i = 0; i < (len+1)/2; i++) { if(s[i] != s[len-1-i]) p = 0; if(r(s[i]) != s[len-1-i]) m = 0; } printf("%s -- is %s.\n\n", s, msg[m*2+p]); } return 0; } </code>
2020-2021/teams/namespace/常量数组.txt
· 最后更改: 2020/05/08 18:05 由
serein
页面工具
显示页面
修订记录
反向链接
Copy this page
导出 PDF
回到顶部