正文

循环移位2008-03-23 13:28:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/zhaoyg/33525.html

分享到:

/*题目描述:给你一个字符串"abcdefg",循环左移两位得到"cdefgab",循环右移两位得到"fgabcde" 输入:多组测试数据,每组一行,第一个是int范围内的整数n,表示要右移的位数,如果n是负数则表示要左移。接着后面是一个串长小于10000000的字符串。最后遇到EOF标志的时候结束。 输出:输出移位后的字符串 样例输入:2 abcdefg-2 abcdefg 样例输出:fgabcdecdefgab 难度: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;  }

阅读(2564) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册