关于C语言的一个问题

[复制链接]
查看11 | 回复0 | 2009-1-30 06:28:38 | 显示全部楼层 |阅读模式
要将“Chian”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母‘A’后面第4个字母是\'E‘,用’E‘代替’A‘。因此“China”应译为“Glmre”。请编译程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为‘C’,‘h’,‘i’,‘n’,‘a’,经过运算,使c1,c2,c3,c4,c5,分别变为‘G’,‘l’,‘m’,‘r’,‘e’,并输出~这个该怎么编写程序呢?

                                                                                                首先先向楼主说明编写此题程序的核心与关键应该是运用C程序中的“循环语句部分”。程序如下:#include<stdio.h>void main(){char c; while((c=getchar())!=\'\\n\') {if((c>=\'a\'&&c<=\'z\'||(c>=\'A\'&&c<=\'Z\'){c=c+4; if(c>\'Z\'&&c<=\'Z\'+4||c>\'z\') c=c-26; }printf("%c",c);} printf("\\n"); }运行结果如下:输入:China输出:Glmre程序中对输入的字符处理办法是:先判定它是否大写字母或小写字母,若是,则将其值加4(即变成其后的第4个字母)。如果加4以后字符值大于‘Z’或\'z\',则表示原来的字母在V(或v)之后,应按题目中的要求和规律将它转换成为A—D(或a—d)之一。办法是使字符变量c的值减26(ASCII表规定)                                       
提问者对答案的评价:

                                                                                                #include<stdio.h>main(){char c[]="China";int i;for(i=0;i<=4;i++){c=c+4; printf("%c",c); }}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行