错误提示:非法的系统调用,内存越界,求问题在哪,为什么?谢谢

#include
int main()
{
int t,m, n, i;
char s[55];
scanf("%d", &t);
while (t--)
{
scanf("%d%s%d", &m,s,&n);
n %= m;
for (i = 0; i < m; i++)
scanf("%c", &s[i]);
for (i = n; i < m; i++)
printf("%c", s[i]);
for(i=0;i<n;i++)
printf("%c", s[i]);
printf("\n");
}
return 0;
}

你输入的是啥?
你这句scanf("%d%s%d", &m, s, &n);应该加一句getchar();或者fflush(stdin);清空输入缓冲区
否则下面的for循环里,第一次循环scanf("%c", &s[i]);会读入回车符

当 int 类型的 t--到期int 的最小范围外会跳出while 因为 int 32位 若电脑32位的话则会超出范围

#include
main()
{
int testcase;
int i;
int m, n;
char str[55];
scanf( "%d", &testcase );
while( testcase-- )
{
scanf( "%d%s%d", &m, str, &n );
n = n % m;
for( i = n; i < m; i++ )
{
printf( "%c", str[i] );
}
for( i = 0; i < n; i++ )
{
printf( "%c", str[i] );
}
printf( "\n" );
}
}