输入数字和小写字母,在屏幕上输出如图所示的X形状的图形 。

要求:

  1. 输出的字符是循环的,即当字母循环到 z 时,下一个字母为 a 。
  2. 输出字符必须跳过字母表中的元音字母(即a、e、i、o、u)

例如:

输入:

4 a

输出:

img


(输入每一行最后一个字母后回车)

#include <stdio.h>
#include <string.h>

int isVowel(char c) {
    switch (c) {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
        case 'A':
        case 'E':
        case 'I':
        case 'O':
        case 'U':
            return 1;
        default:
            return 0;
    }
}

int main() {
    int n, len, i, j, k = 0;
    char c;

    scanf("%d %c", &n, &c);

    len = strlen("bcdfghjklmnpqrstvwxyz");

    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            if (i == j || i + j == n - 1) {
                printf("%c", c++);
                if (c > 'z') {
                    c = 'a';
                }
                while (isVowel(c) && c <= 'z') {
                    c++;
                }
            } else {
                printf(" ");
            }
        }
        printf("\n");
    }

    for (i = n - 2; i >= 0; i--) {
        for (j = 0; j < n; j++) {
            if (i == j || i + j == n - 1) {
                printf("%c", c++);
                if (c > 'z') {
                    c = 'a';
                }
                while (isVowel(c) && c <= 'z') {
                    c++;
                }
            } else {
                printf(" ");
            }
        }
        printf("\n");
    }

    return 0;
}

b        j
 c     h
   d  g
     f
   d  g
  c    h
b       j
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^