鱼C论坛

 找回密码
 立即注册
查看: 2443|回复: 5

一列数移位问题

[复制链接]
发表于 2017-10-31 19:48:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <stdio.h>
  2. #include <math.h>
  3. int move(int value, int n)
  4. {
  5.     int length = 0;
  6.     int cvalue = value;//储存value的副本。
  7.     int a,b;
  8.     if ( n == 0)  return value;
  9.     while (cvalue/10 != 0)
  10.     {
  11.         cvalue/= 10;
  12.         length ++;
  13.     }
  14.     if ( n > 0){
  15.         for(int n1 = n;n1 > 0;n1--){
  16.             a = value%10;
  17.             value =a*pow(10,length)+value/10;
  18.         }
  19.     }//在右移时先将最后那个数取掉,后加到其余数的最前面
  20.         else
  21.         {
  22.                 for(int n1 = n;n1 < 0;n1++){
  23.                         b = value/pow(10,length);
  24.                         value =(value-b*pow(10,length))*10+b;
  25.                 }
  26.         }
  27.     return value;
  28. }

  29. int main()
  30. {
  31.     int value,n;
  32.     scanf("%d %d",&value,&n);
  33.     printf("%d",move(value,n));

  34.     return 0;
  35. }
复制代码

右移操作有问题,但不知道哪里错
noj035.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-31 21:41:57 | 显示全部楼层

回帖奖励 +5 鱼币

然而我运行你的程序,并没有问题:
  1. 54321 -3
  2. 21543

  3. 54321 3
  4. 32154
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-1 07:49:36 From FishC Mobile | 显示全部楼层
BngThea 发表于 2017-10-31 21:41
然而我运行你的程序,并没有问题:

我用vc也没问题,可用codeblocks就有问题了,求解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-1 07:54:44 From FishC Mobile | 显示全部楼层
Sj中国智造 发表于 2017-11-1 07:49
我用vc也没问题,可用codeblocks就有问题了,求解

具体什么问题,给出问题提示
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-1 08:05:58 | 显示全部楼层
BngThea 发表于 2017-11-1 07:54
具体什么问题,给出问题提示

就是我用codeblocks时右移后并不是我要的结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-2 00:56:33 | 显示全部楼层

回帖奖励 +5 鱼币

本帖最后由 hacker.jin 于 2017-11-2 00:58 编辑

字符串超级精简版,请笑纳          ,            Code::Blocks+GCC


  1. #include <stdio.h>
  2. #include <string.h>

  3. void move(char value[], int m)
  4. {
  5.     int len = strlen(value);
  6.     for(int i = 0; i<len; i++)
  7.         printf("%c",value[(len+i+m)%len]);
  8. }

  9. int main()
  10. {
  11.     char value[100] = "";
  12.     int m;
  13.     scanf("%s %d",&value,&m);
  14.     move(value,m);
  15.     return 0;
  16. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 15:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表