第一层循环,用来循环计算第几个元素
第二层用来计算当前元素的下一个

#include<stdio.h>
#include<string.h>
char aaa[100000] = { '\0' };

int main() {
    int N; scanf("%c %d",&aaa[0], &N);
    for (int i = 2; i <= N; i++) {//第几个元素
        char bbb[100000] = { '\0' };                    //创建空字符串,保存生成的下一个元素
        int b = 0, num = 0;
        for (int j = 0; aaa[j] != '\0'; j++) {          //计算一个元素
            if (aaa[j] == aaa[j + 1]) {                 //重复什么都不干,就计数
                num++;
            }
            else {                                              //不重复,该输出了
                bbb[b++] = aaa[j];
                if (num == 0)                               //就一个
                    bbb[b++] = '0' + 1;
                else {                                          //重复
                    int temp = num + 1;
                    num = 0;
                    bbb[b++] = temp % 10 + '0';
                }
            }
        }
        strcpy(aaa, bbb);                               //将生成的元素复制到原始字符串
    }
    printf("%s", aaa);
    return 0;
}