习题 3.6 请编程序将"China"译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。

C程序设计 (第四版) 谭浩强 习题3.6 个人设计

习题 3.6 请编程序将"China"译成密码,密码规律是:用原来的字母后面第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’。分别用putchar函数和printf函数输出这个5个字符。

代码块

方法1:(利用顺序结构)

#include 
#include 
int main()
{
    //给5个变量赋初值
    char c1 = 'C';
    char c2 = 'h';
    char c3 = 'i';
    char c4 = 'n';
    char c5 = 'a';
    //输出原代码
    putchar(c1);
    putchar(c2);
    putchar(c3);
    putchar(c4);
    putchar(c5);
    putchar('\n');
    //原代码加密
    c1 += 4;
    c2 += 4;
    c3 += 4;
    c4 += 4;
    c5 += 4;
    printf("%c%c%c%c%c\n", c1, c2, c3, c4, c5);
    system("pause");
    return 0;
}

方法2:(利用函数的模块化设计)

#include 
#include 
void encrypt(char pw[], int c);                       //定义加密函数
int main()
{
	char c[5];
	for (int i = 0; i < 5; scanf("%c", &c[i]), i++);  //输入5个字符
	encrypt(c, 5);                                    //加密
	puts(c);
	system("pause");
	return 0;
}
//加密函数
void encrypt(char pw[], int c)
{
	for (int i = 0; i < c; pw[i] += 4, i++);
	pw[i] = '\0';
}

方法3:(动态分配内存)

#include 
#include 
void input(char *p);
void complie(char *p);
int main()
{
	char *password=(char*)malloc(30*sizeof(char));
	input(password);
	complie(password);
	system("pause");
	return 0;
}
void input(char *p)
{
	printf("Enter word: ");
	scanf("%s", p);
}
void complie(char *p)
{
	char *s;
	for(s=p; *s!='\0'; s++)
		*s+=4;
	printf("result: %s\n", p);
}

你可能感兴趣的:(C程序设计,(第四版),谭浩强,课后答案,c语言,设计)