#include <stdio.h>
int main()
{
int i=0,n=0
char puzzle[10]
printf("please input n:")
scanf("%d",&n)//输入移位个数
printf("please input puzzle:")
scanf("%s",puzzle)//这里在循环外输入,采用%s格式输入
for (i=0i<10i++)
{//去掉while循环,会让程序死循环
if (puzzle[i]>='A'+n &&puzzle[i]<='Z' || puzzle[i]>='a'+n &&puzzle[i]<='z')//A+n到Z,或a+n到z
puzzle[i]=puzzle[i]-n//转换为前n个字母
else if (puzzle[i]>='A'&&puzzle[i]<'A'+n || puzzle[i]>='a' &&puzzle[i]<'a'+n)/*A到A+n,或a到a+n*/
puzzle[i]=puzzle[i]+26-n//转换为其后第26-n个字母/
}
printf("%s\n",puzzle)
return 0
}
将宏定义带入。MCRB(j,MCRA(i))
=2*MCRA(j)+MCRA(i)
=2*2*j +2*i
=2*2*3+2*2
=16
输出16