帮忙看看这个程序问题出在哪
我自己也做了测试,在较短长度的串中我尚没发现问题,但当提交上去后却总是wrong answer。看了半天没有思绪,还望高手帮忙/*
题目描述:
给你一个字符串"abcdefg",循环左移两位得到"cdefgab",
循环右移两位得到"fgabcde"
输入:
多组测试数据,每组一行,第一个是int范围内的整数n,
表示要右移的位数,如果n是负数则表示要左移。接着后面
是一个串长小于10000000的字符串。
最后遇到EOF标志的时候结束。
输出:
输出移位后的字符串
样例输入:
2 abcdefg
-2 abcdefg
样例输出:
fgabcde
cdefgab
难度:for beginner
*/
#include <stdio.h>
#include <string.h>
#define MAX 10000000
char ch[MAX];
char *point;
int main()
{
int n;
while (scanf("%d %s",&n,ch)!=EOF)
{
point=ch;
//getchar();
if(n<0)
{
n=(-1*n)%strlen(ch);
point+=n;
printf("%s",point);
*point='\0';
printf("%s\n",ch);
}
else
{
n=n%strlen(ch);
while (*(point+n))
{
point++;
}
printf("%s",point);
*point='\0';
while (point!=ch)
{
point--;
}
printf("%s\n",point);
}
}
return 0;
}