初学编程,大家帮忙看下这道c语言题怎么做?万分感谢

2024-11-08 03:33:39
推荐回答(1个)
回答1:

先给你第一题的,百度知道的这个编辑器真的不适合粘贴代码

#include

#include

#define MAX_ARRAY_SIZE 1024

#define MAX_MAP_SIZE 10


/* 输入数组,连续输入,如:aedabcdaeas  */

int inputArray(char *buff) {

        int len = 0;

        /* 使用fgets来防止缓冲区溢出  */

        if (NULL == fgets(buff, MAX_ARRAY_SIZE, stdin)) {

                return 0;

        }

        len = strlen(buff);

        /* fgets 返回的数据可能是换行符结尾的,也可能不是,对换行符结尾的进行处理 */

        if (buff[len - 1] == '\n') {

                buff[len - 1] = '\0';

                len -= 1;

        }

        return len;

}

int processArray(int len, char *chars, char *map) {

        /* 保存反向映射便于查找  */

        int tmap[128];

        int maplen = 0;

        int i = 0;

        char *p = chars;

        memset(tmap, -1, sizeof(int) * 128);

        for (i = 0; i < len; i++) {


                if (*p > 'z' || *p < 'a') {

                        return -*p;