c语言数组运用题,希望各位指出我的代码错误

问题简介如下

img


我的代码
#include<stdio.h>
#include<string.h>
int main()
{char a[80]={0},b[80]={0};
int m=0,n,i;
gets(a);
scanf("%d",&n);
for(i=strlen(a)-1-n;i<strlen(a);i++)
a[i]=b[m++];
for(i=0;i<strlen(a)-1-n;i++)
b[m++]=a[i];
b[m]='\0';
puts(b);
}
请问为什么没有输出呢?不应该输出b串吗?

a[i]=b[m++]中,你的数组b为空值,无法对a[i]进行赋值