编程序将“china”译成密码
/*请编程序将“China”译成密码,密码规律是:用原来的字母后面 第4个字母代替原来的字母。分别用putchar函数和printf函数输出*/
#include<stdio.h>
int main(){
char c1,c2,c3,c4,c5;
printf("请输入:\n");//其余4个直接copy即可
c1 = getchar();
c1 += 4;
printf("编译完成:\n");
putchar(c1);
printf("\n");
printf("%c\n",c1);
}
谭浩强C程序设计(第四版)p84第6题
复习:
1.getchar()
2.+=
说明:
1.此程序借用ASCⅡ值完成
2.只能一个字符一个字符输入
/*请编程序将“China”译成密码,密码规律是:用原来的字母后面 第4个字母代替原来的字母。分别用putchar函数和printf函数输出*/
#include<stdio.h>
int main(){
char c1[100];
int n,i=0;
printf("请输入单词:\n");
do{
scanf("%c",&c1[i]);
}
while(c1[i++]!='#');
printf("输出结果:\n");
for(i=0;c1[i]!='#';i++){
if((c1[i]>='a'&&c1[i]<='v')||(c1[i]>='A'&&c1[i]<='V'))
printf("%c",c1[i]+4);//前22个用+4
if((c1[i]>='w'&&c1[i]<='z')||(c1[i]>='W'&&c1[i]<='Z'))
printf("%c",c1[i]-22);//后4个用-22
}
}
这是借助数组的第二种解答
复习:
1.i++与++i的不同
2.do……while的用法
说明:
1.可以连续输入,’#‘结束输入后开始进行译码
2.涉及到前22个与后4个不同问题,功能更加强大
3.使用了ASCⅡ码
/*请编程序将“China”译成密码,密码规律是:用原来的字母后面 第4个字母代替原来的字母。分别用putchar函数和printf函数输出*/
#include <stdio.h>
#include <stdlib.h>
#define MAXQSIZE 26
typedef struct{
char *base;
int front;//下标
int rear;//下标
}SqQueue;
int main(){
SqQueue Q;
int n=65,i;
char c1;
Q.base=(char *)malloc(MAXQSIZE*sizeof(char));//这里注意是base,malloc是为了返回首地址
Q.front=Q.rear=0;
for(i=0;i<MAXQSIZE;i++)
Q.base[i]= n++;
printf("输入要转码的字母:\n");
scanf("%c",&c1);
for(Q.front=0;Q.front<MAXQSIZE;Q.front++){ //front
if(Q.base[Q.front] == c1){
Q.rear = (Q.front+4)%MAXQSIZE;
printf("输出:\n%c",Q.base[Q.rear]);
}
}
}
这是借助循环队列的第三种做法
复习:
1.循环队列
2.malloc
说明:
1.这个译码机制与前两个完全不同,前两个只是ASCⅡ的增加减,这个是26个字母形成一个圈,寻找第四个位置然后输出
2.字符只能一个一个输入
3.利用ASCⅡ输入数据,然后进行寻找
4.可以加上对小写字母的寻找
还没有评论,来说两句吧...