FeimiL


私信TA

用户名:feimil

访问量:1369

签 名:

等  级
排  名 14265
经  验 848
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校 滁州学院
专  业

  自我简介:

TA的其他文章

解题思路:
本题的思路并不难,纸上都能做出来,但用代码实现就很抽象

可以分为几步

  1. 获取初始字符串c(很简单的,%s就行)和变换次数n

  2. 创建循环1,循环内的任务是每次都把上次得到的字符串“解释”一次然后赋给c;

  3. 循环1内部创建一个循环2,任务是将的到的待解释字符串c复制到c1中,并同时在末尾加上一个结束标志‘\0’;//亦用strcpy和strlen函数简单实现

  4. 循环1内部创建一个循环3,任务是将字符串c1解释一次后复制到c中;

  5. 循环3内部创建一个循环4,任务是将依次记录字符串c1中某个字符的出现次数;

  6. 当上述的循环全部完成后,字符串c即是我们需要的代码

参考代码:

#include<stdio.h>

#include<string.h>

int main() {

char c[10001],c1[10001];

int n,j=0,k=0;//j操控c1;k操控c

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

while(n--) {

//循环1

j=0;

for(int l=0; l<strlen(c); ++l) {

//循环2

c1[l]=c[l];

c1[l+1]='\0';

}

/*strcpy和strlen函数组合也可以实现上述循环的功能

strcpy(c1,c);

c1[strlen(c1)]=='\0';

*/

k=0;

while(1) {

//循环3

int len=0;

char flag=c1[j];

if(flag=='\0') break;

while(1) {

//循环4

if(c1[j++]==flag) len++;

else {

--j;

break;

}

}

c[k++]='0'+len;

c[k++]=flag;

}

}

puts(c);

return 0;

}


 

0.0分

2 人评分

  评论区