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; } 为什么输什么出来的都是笑脸额。。 请看看哪里错了 展开
全部评论(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; } 为什么输什么出来的都是笑脸额。。 请看看哪里错了 展开
- 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)
- netbeans 怎么改字符编码
- 基本ASCII是()位字符编码
- HTML中怎么设置字符编码
- 本人刚学Dw,希望热心的网友帮助,谢谢!
- c语言滤波器
- 很简单的滤波器 就是matlab里的 1/(s+1) 不知道怎么写 我用的 参数是 10 1 也就是 1/(10s+1) 请大家帮忙写个C程序 不胜感激
- C语言,计时器
- 给段C语言编写的计时器代码,谢谢
- c语言编程软件 for mac
- 有哪些软件。给些地址吧、软件要付钱么?! 麻烦表复制别人的,谢了
- c语言IPC连接
- 传三个参数,IP,用户,密码,连接成功返回TURE,否则返回FALSE
- 温度计65°C多少°F
- c语言写的计时器
- 机器人对话c语言编程
- 模拟机器人与你的对话 机器人:你所学专业? 人:计算机 机器人:姓名? 人:张三 系统建立一个文件,文件内容:计算机--张三 机器人:你所学专业? 人:YL 机器人:姓名? 人:李四 系统建立一个文件,文件内容:YL--李四
- c语言用什么编程软件?
- c语言编程软件怎么安装
- c语言编程软件哪个好用
- C语言编程软件名字叫什么
- c语言编程软件有哪些??
- 怎么处理警告:编码 GBK 的不可映射字符
- c语言,怎么输入数字信号源
- 举个例子,给出源代码。。... 举个例子,给出源代码。。 展开
9月突出贡献榜
- 单位预算忏悔
- 饿啊地方
- 空中有牛
- 依然相信你会
- 本生(天津)健康科技有限公司
- 猫合宝
- 武汉安德信检测设备有限公司
- 上海一科仪器有限公司
- 广东皓天检测仪器有限公司
- 东莞市皓天试验设备有限公司
- futu888
- 牛牛麻麻2
推荐主页
最新话题
参与评论
登录后参与评论