仪器网(yiqi.com)欢迎您!

| 注册 登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-直播- 视频

问答社区

C语言 简单编码 (如果访问到字符A,W,F就转化成I)

麟玲翎 2011-03-21 09:04:54 634  浏览
  • 题目是: Z近Kingly对编码很感兴趣,于是从网上找了一些编码原则来对字符串做实验。由于Kingly一直很忙,所以希望你这位编程高手来替他解决这个问题。下面是编码原则:(1) 如果访问到字符A,W,F就转化成I;(2) 如果访问到字符C,M,S就分别转化成L,o,... 题目是: Z近Kingly对编码很感兴趣,于是从网上找了一些编码原则来对字符串做实验。由于Kingly一直很忙,所以希望你这位编程高手来替他解决这个问题。下面是编码原则:(1) 如果访问到字符A,W,F就转化成I;(2) 如果访问到字符C,M,S就分别转化成L,o,v;(3) 如果访问到字符D,P,G,B就转化成e;(4) 如果访问到字符L,X就分别转化成Y,u;(5) 其他字符均保持不变。(6) 遇到END就结束! Sample Input: A CMSD LMX END Sample Output: I Love You 我的程序是: #include #include int main() { int i=0,n=1; char a[100]; while(n) { while(a[i]=getchar()!='\n') i++; if(a[0]!='E' || a[1]!='N' || a[2]!='D') { for(n=0;n<=i;n++) { switch(a[n]) { case 'A':case 'W':case 'F': a[n]='I'; break; case 'C': a[n]='L'; break; case 'M': a[n]='o'; break; case 'S': a[n]='v'; break; case 'D':case 'P':case 'G':case 'B': a[n]='e'; break; case 'L': a[n]='Y'; break; case 'X': a[n]='u'; break; } } for(n=0;n<=i;n++) printf("%c",a[n]); printf("\n"); i=0; } else n=0; } return 0; } 为什么输什么出来的都是笑脸额。。 请看看哪里错了 展开

参与评论

全部评论(4条)

  • 初心暖哭i 2011-03-22 00:00:00
    我不是很清楚为什么那样该,但是改了之后对了。 把 while(a[i]=getchar()!='\n') 改成: while( (a[i]=getchar())!= '\n') 而且你的结束输入语句也是错的,假如我输入了 ENDBGDERHJ 该不该结束呢? 建议你使用scanf 或者 gets 输入语句 ,然后使用strlen 计算输入字符串的长度 。而且用这两个输入函数也不会出现 我刚才的疑问了。

    赞(4)

    回复(0)

    评论

  • 新航星洗涤设备 2011-03-22 00:00:00
    while(a[i]=getchar()!='\n') 赋值的顺序从右到左。。如果(a[i]=getchar())不加括号,就是“getchar()不是回车”为真,a[i]=1。ASCII对应soh,所以你看到了笑脸。 如果学过字符串,那就用String,用来判断end比较有效

    赞(15)

    回复(0)

    评论

  • sfppscy72557 2011-03-22 00:00:00
    如果用scanf 可以写两遍,,diyi个读换行,,第二个读 END

    赞(15)

    回复(0)

    评论

  • zashi19810310 2018-04-07 13:47:50
    有注释: #include <stdio.h> #include <string.h> int main() { int i=0,n=1; char a[100]; while(n) { while((a[i]=getchar())!='\n') /* 加上括号 */ i++; if(a[0]!='E' || a[1]!='N' || a[2]!='D') { for(n=0;n<=i;n++) { switch(a[n]) { case 'A':case 'W':case 'F': a[n]='I'; break; case 'C': a[n]='L'; break; case 'M': a[n]='o'; break; case 'S': a[n]='v'; break; case 'D':case 'P':case 'G':case 'B': a[n]='e'; break; case 'L': a[n]='Y'; break; case 'X': a[n]='u'; break; } } for(n=0;n<=i;n++) printf("%c",a[n]); /*printf("\n");*/ i=0; } else n=0; } return 0; } 如果考虑,ENDXXX 的问题,可以这样 把那个 if() 换成下面的: if(strlen(a) == 3 && a[0] == 'E' && a[1] == 'N' && a[2] == 'D') break; else

    赞(6)

    回复(0)

    评论

获取验证码
我已经阅读并接受《仪器网服务协议》

热门问答

C语言 简单编码 (如果访问到字符A,W,F就转化成I)
题目是: Z近Kingly对编码很感兴趣,于是从网上找了一些编码原则来对字符串做实验。由于Kingly一直很忙,所以希望你这位编程高手来替他解决这个问题。下面是编码原则:(1) 如果访问到字符A,W,F就转化成I;(2) 如果访问到字符C,M,S就分别转化成L,o,... 题目是: Z近Kingly对编码很感兴趣,于是从网上找了一些编码原则来对字符串做实验。由于Kingly一直很忙,所以希望你这位编程高手来替他解决这个问题。下面是编码原则:(1) 如果访问到字符A,W,F就转化成I;(2) 如果访问到字符C,M,S就分别转化成L,o,v;(3) 如果访问到字符D,P,G,B就转化成e;(4) 如果访问到字符L,X就分别转化成Y,u;(5) 其他字符均保持不变。(6) 遇到END就结束! Sample Input: A CMSD LMX END Sample Output: I Love You 我的程序是: #include #include int main() { int i=0,n=1; char a[100]; while(n) { while(a[i]=getchar()!='\n') i++; if(a[0]!='E' || a[1]!='N' || a[2]!='D') { for(n=0;n<=i;n++) { switch(a[n]) { case 'A':case 'W':case 'F': a[n]='I'; break; case 'C': a[n]='L'; break; case 'M': a[n]='o'; break; case 'S': a[n]='v'; break; case 'D':case 'P':case 'G':case 'B': a[n]='e'; break; case 'L': a[n]='Y'; break; case 'X': a[n]='u'; break; } } for(n=0;n<=i;n++) printf("%c",a[n]); printf("\n"); i=0; } else n=0; } return 0; } 为什么输什么出来的都是笑脸额。。 请看看哪里错了 展开
2011-03-21 09:04:54 634 4
c语言 编码问题 求解
描述为了Z大程度地节约存储空间,经常需要把信息进行编码。一种很有效的编码方法是用数字来表示一串字符。假设这些字符串都是由不重复的英文小写字母组成的,且每个字符串中的英文字母都是从小到大排列的。这个编码系统按照如下的方式工作:字符串是按照长度... 描述为了Z大程度地节约存储空间,经常需要把信息进行编码。一种很有效的编码方法是用数字来表示一串字符。假设这些字符串都是由不重复的英文小写字母组成的,且每个字符串中的英文字母都是从小到大排列的。这个编码系统按照如下的方式工作:字符串是按照长度从小到大的顺序排列的长度相同的字符串,是按照字典需排列的则根据这个编码系统,所有的字符串从 a 开始可以编码如下: a - 1 b - 2 ... z - 26 ab - 27 ... az - 51 bc - 52 ... vwxyz - 83681 ... 那么,请编程计算出一个字符串在这个编码系统下编码后的值是多少。输入输入的diyi行为 N,表示有 N 组数据。后面的 N 行每行包含一个不超过 10 个字母的字符串。输出输出字符串所对应的编码,如果该字符串不能被编码,则输出 0。 测SY例 1以文本方式显示 1↵ bf 输出55↵ 以下是我的程序,有一个保密的测SY例过不了,求指导 #include #include int main () { long long fac(int n,int m); int i,j,k,l,n,len; long long pos; char str[11]; char *p; scanf("%d\n",&n); for(i=1;i<=n;i++) { pos=0; for(p=str;(*p=getchar())!='\n';p++) if(*p==EOF) break; *p='\0'; for(p=str;*(p+1)!='\0'&&*p<*(p+1);p++); if(*(p+1)!='\0') { printf("0\n"); continue; } len=strlen(str); for(j=1;j
2018-11-23 23:32:17 363 0
sql 把科室编码里包括B的字符全换成C字符
sql 把科室编码里包括B的字符全换成C字符是replace(B%,B,C)还是replace(科室编码,B,C)
2018-06-18 00:36:58 255 2
netbeans 怎么改字符编码
 
2012-04-21 23:09:50 331 2
基本ASCII是()位字符编码
 
2014-09-20 15:39:29 240 2
HTML中怎么设置字符编码
本人刚学Dw,希望热心的网友帮助,谢谢!
2011-12-18 02:11:36 326 2
c语言滤波器
很简单的滤波器 就是matlab里的 1/(s+1) 不知道怎么写 我用的 参数是 10 1 也就是 1/(10s+1) 请大家帮忙写个C程序 不胜感激
2016-03-29 11:49:01 764 1
C语言,计时器
给段C语言编写的计时器代码,谢谢
2017-10-08 06:42:46 624 1
c语言编程软件 for mac
有哪些软件。给些地址吧、软件要付钱么?! 麻烦表复制别人的,谢了
2016-02-02 10:11:45 386 2
c语言IPC连接
传三个参数,IP,用户,密码,连接成功返回TURE,否则返回FALSE
2014-10-29 22:13:23 246 1
温度计65°C多少°F
 
2018-11-28 08:54:38 296 0
c语言写的计时器
 
2016-09-10 21:55:59 409 1
机器人对话c语言编程
模拟机器人与你的对话 机器人:你所学专业? 人:计算机 机器人:姓名? 人:张三 系统建立一个文件,文件内容:计算机--张三 机器人:你所学专业? 人:YL 机器人:姓名? 人:李四 系统建立一个文件,文件内容:YL--李四
2018-11-28 02:02:59 415 0
c语言用什么编程软件?
 
2018-11-17 02:18:53 216 0
c语言编程软件怎么安装
 
2017-02-03 20:59:52 278 3
c语言编程软件哪个好用
 
2016-11-21 15:07:32 217 2
C语言编程软件名字叫什么
 
2013-08-08 13:32:15 474 6
c语言编程软件有哪些??
 
2018-11-12 11:03:20 279 0
怎么处理警告:编码 GBK 的不可映射字符
 
2007-05-21 22:56:00 361 2
c语言,怎么输入数字信号源
举个例子,给出源代码。。... 举个例子,给出源代码。。 展开
2013-03-25 14:23:13 235 3

9月突出贡献榜

推荐主页

最新话题