第 2 题这么写就行了:
/** decoding.c -- 解决解码游戏问题 */
#include <stdio.h>
#include <ctype.h>
/*
2.解码游戏:
用原来的字母后面的第 2n+1 个字母代替原来的字母,若
ASCII 码计算后不为字母以问号代替,利用初始化赋值法,即
c1, c2, c3, c4, c5, c6 分别代表 “ Yellow ”,请计算其解
译后的结果。
提示:需输入 n 值,需先判断是否是字母。
*/
int main(void)
{
// 使用初始赋值法
char c1 = 'Y', c2 = 'e', c3 = 'l', c4 = 'l', c5 = 'o', c6 = 'w';
// 定义变量 n 并从控制台输入中读取
int n;
printf("请输入 n 的值:");
scanf("%d", &n);
// 计算解译后的结果
c1 = c1 + (2 * n + 1);
c2 = c2 + (2 * n + 1);
c3 = c3 + (2 * n + 1);
c4 = c4 + (2 * n + 1);
c5 = c5 + (2 * n + 1);
c6 = c6 + (2 * n + 1);
// 判断是否不为字母,如果不是字母则显示为问号
c1 = isalpha(c1)? c1 : '?';
c2 = isalpha(c2)? c2 : '?';
c3 = isalpha(c3)? c3 : '?';
c4 = isalpha(c4)? c4 : '?';
c5 = isalpha(c5)? c5 : '?';
c6 = isalpha(c6)? c6 : '?';
// 输出结果
printf("%c%c%c%c%c%c\n", c1, c2, c3, c4, c5, c6);
return 0;
}