原题的意思是给定一个指定长度的数组,然后接受一个数字m,将原数组前m位移动到最后,且顺序不变。

看到这个题,想到的第一个方法就是在用一个数组来储存改变后的数字,代码如下

 int func(){
int i,j,n;
int b[];     //定义一个新数组用来储存改变后的数字
int a[]={,,,,,,,,,};
printf("请输入要后移的位数");
scanf("%d",&n);
for(i=n,j=;i<;i++,j++) //把原数组n位后的数放到新数组最前面
b[j]=a[i];
for(i=;i<n;i++,j++) //将原数组前n位接着放到新数组中
b[j]=a[i];
for(i=;i<;i++)
{
printf("%d ",b[i]);
}
return ;

然后看题意好像是不允许用另外一个数组,接着就有了下一种思路,每次把原数组最后一个数放到最前面,循环数组长度(len)-n次,代码如下:

 void func()
{
int temp,i,j,n;
int a[]={,,,,,,,,,};
printf("\n请输入后移的位数");
scanf("%d",&n);
n=-n;
for(i=;i<n;i++) //循环n次把原数组后n位放到最前
{
j=;
temp=a[j]; //每次记录原数组最后一个数字
for(;j>;j--)
{
a[j]=a[j-]; //把整个数组后移一位
}
a[j]=temp; //把最后一个数放到最前
}
for(i=;i<;i++)
{
printf("%d ",a[i]);
}
}

这样一个程序感觉看的很头疼,然后自己就在网上又找到了一种''偷懒''的方法,  这种方法的思路是只按后移之后的顺序输出原数组,代码如下:

 void func()
{
int i,k,n;
int a[]={,,,,,,,,,};
printf("\n输入后移的位数");
scanf("%d",&n);
for(i=;i<;i++)
{
k=(i+n)%;     //求后移之后的下标
printf("%d ",a[k]); //直接输出该数字
}
}

感觉这个题的解决方法很多,然后就又在搜了下,又找到了一种方法,这种方法的思路是先分别将m位之前和之后的数字反转,最后将整个数组反转,代码贴下:

 void fun()
{
int i,j,n,temp;
int a[]={,,,,,,,,,};
printf("\n请输入后移的位数");
scanf("%d",&n);
for(i=,j=n-;i<n/;i++,j--) //将n位之前的数字反转
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
for(i=n,j=;i<(n+)/;i++,j--) //将n位之后的数字反转
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
for(i=,j=;i<;i++,j--) //将整个数组反转
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
/*上面这三个循环可以写成一个函数*/
for(i=;i<;i++)
{
printf("%d ",a[i]);
} }

今天就先写这四种方法,能找到其他的还会继续添加,如果大家有什么比较好的方法,也可以交流下。

给定一列数字将其平移n位的更多相关文章

  1. 验证abc三列数字符合我的小弟要求

    需求好像是: 1.第一列数据有重复的找出来,并且找出它的重复位置 2.第三列根据第一列得出的位置,取出相应位置的数据进行相加 3.相加的结果 是否等同于第二列的对应位置数据 <!DOCTYPE ...

  2. 求矩阵中各列数字的和 Exercise08_01

    import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年12月 * 题目:求矩阵中各列数字的和 * */ public class Exercise ...

  3. 在EXCEL中如何让一列数字变成文本格式?就是想让单元格的左上角变一个绿绿的?

    如何在EXCEL中如何让一列数字变成文本格式?就是想让单元格的左上角变一个绿绿的? 解决方案:将整列单元格格式设为文本,然后,选中该列,数据--分列--完成 详细步骤: (1)选中1行或者1列,再单击 ...

  4. 给定n个数字,问能否使这些数字相加得到h【折半查找/DFS】

    A Math game Time Limit: 2000/1000MS (Java/Others) Memory Limit: 256000/128000KB (Java/Others) Submit ...

  5. 控制input标签中只能输入数字以及小数点后两位

    js 代码如下: /* 控制input标签中只能输入数字 和小数点后两位 */ function checkNum(obj) { //检查是否是非数字值 if (isNaN(obj.value)) { ...

  6. 加密传输:每位数字+6,然后用除以9的余数代替该数字, 在把第一位和第四位交换,第二位和第三位交换,例如3276->3840

    /** * @author:(LiberHome) * @date:Created in 2019/3/6 10:00 * @description: * @version:$ */ /*今日目标:5 ...

  7. input输入框只能输入数字和 小数点后两位

    //input输入框只能输入数字和 小数点后两位 function num(obj,val){ obj.value = obj.value.replace(/[^\d.]/g,"" ...

  8. wps直接打开CVS文件会把长串数字订单号最后4位变为0

    WPS打开CVS文件,发现里面的长串数字订单号后4位全变成0了,而且是以科学计数法来显示了 上网查了下,不能直接打开,得先在WPS(OFFICE中也一样)中新建一个空白表格,然后用菜单里的数据导入功能 ...

  9. 《剑指offer》第四十四题(数字序列中某一位的数字)

    // 面试题44:数字序列中某一位的数字 // 题目:数字以0123456789101112131415…的格式序列化到一个字符序列中.在这 // 个序列中,第5位(从0开始计数)是5,第13位是1, ...

随机推荐

  1. Dalvik虚拟机中DexClassLookup结构解析

    http://blog.csdn.net/roland_sun/article/details/46877563 原文如下: 在Android系统中,所有的类定义以及具体的代码都是包含在DEX文件中的 ...

  2. angularJS入门小Demo2 【包含不用数据库而用data.json格式响应前台的ajax请求方式测试】

    事件绑定: <html> <head> <title>angularJS入门小demo-5 事件指令</title> <script src=&q ...

  3. Json对象转为实体对象

    Json对象转为实体对象 1.Bean中申明 trainTypeList: public class TrainTypeQueryParam implements Serializable { pri ...

  4. 题解【luoguP1351 NOIp提高组2014 联合权值】

    题目链接 题意:给定一个无根树,每个点有一个权值.若两个点 \(i,j\) 之间距离为\(2\),则有联合权值 \(w_i \times w_j\).求所有的联合权值的和与最大值 分析: 暴力求,每个 ...

  5. last-child 选择器

    <!DOCTYPE html> <html> <head> <style> p:last-child //p的父类 的子类下最后一个,就是p兄弟层的最后 ...

  6. linux 命令后台运行(转载)

    原文连接:https://www.cnblogs.com/lwm-1988/archive/2011/08/20/2147299.html 有两种方式: 1. command & : 后台运行 ...

  7. Weblogic 9.2 启动时报错 javax.xml.namespace.QName

    启动Weblogic 时会报错.javax.xml.namespace.QName; local class incompatible: stream classdesc serialVersionU ...

  8. [洛谷P3527] [POI2011]MET-Meteors

    洛谷题目链接:[POI2011]MET-Meteors 题意翻译 Byteotian Interstellar Union有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第1 ...

  9. [洛谷P2491] [SDOI2011]消防

    洛谷题目链接:[SDOI2011]消防 题目描述 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超 ...

  10. [J]computer network tarjan边双联通分量+树的直径

    https://odzkskevi.qnssl.com/b660f16d70db1969261cd8b11235ec99?v=1537580031 [2012-2013 ACM Central Reg ...