有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数。
#include<stdio.h>
#include<stdlib.h> int main()
{
setvbuf(stdout,NULL,_IONBF,); //使用Eclipse开发环境时必须写。
void process(int *,int,int);
int a[];
int n,m;
int i; printf("How many numbers?");
scanf("%d",&n);
printf("Input n numbers:");
for(i=;i<n;i++)
scanf("%d",&a[i]);
printf("Input m:");
scanf("%d",&m); process(a,n,m); printf("After processed:");
for(i=;i<n;i++)
printf("%d ",a[i]); return EXIT_SUCCESS;
} void process(int *x,int n,int m)
{
int t[];
int i;
//int *p;指针循环变量p
for(i=;i<n;i++)
t[i]=x[i]; for(i=;i<m;i++)
x[i]=t[n-m+i];
for(i=m;i<n;i++)
x[i]=t[i-m]; /*指针变量做循环变量也可以。
for(i=0,p=x;p<x+m;p++)
*p=t[n-m+i++]; for(i=0,p=x+m;p<x+n;p++)
*p=t[i++];
*/
}
或者可以使用递归调用的方法,每次向后移动一位数。
#include<stdio.h>
#include<stdlib.h> int main()
{
setvbuf(stdout,NULL,_IONBF,);
void process(int *,int,int);
int a[];
int n,m;
int i; printf("How many numbers?");
scanf("%d",&n);
printf("Input n numbers:");
for(i=;i<n;i++)
scanf("%d",&a[i]);
printf("Input m:");
scanf("%d",&m); process(a,n,m); printf("After processed:");
for(i=;i<n;i++)
printf("%d ",a[i]); return EXIT_SUCCESS;
} void process(int *x,int n,int m)
{
int *p,temp;
temp=*(x+n-);
for(p=x+n-;p>x;p--)
*p=*(p-);
*x=temp; m--;
if(m>)
process(x,n,m);//每次后移一次,递归调用,当循环次数m减至为0时,停止调用。
}
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数。的更多相关文章
- 36 有n个整数,使其前面各数顺序向后移n个位置,最后m个数变成最前面的m个数
题目:有n个整数,使其前面各数顺序向后移n个位置,最后m个数变成最前面的m个数 public class _036ExchangeSite { public static void main(Stri ...
- 有n个整数,使其前面各数顺序向后移n-m个位置,最后m个数变成最前面的m个数
题目:有n个整数,使其前面各数顺序向后移n-m个位置,最后m个数变成最前面的m个数 public class 第三十六题数组向后移m个位置 { public static void main(Stri ...
- 代码实现:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
//有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 import java.util.ArrayList; import java.util.Scanner; public ...
- Problem C: 指针:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数
#include<stdio.h> int move(int *x,int n,int m) { ]; int i; //int *p;指针循环变量p ;i<n;i++) t[i]= ...
- C++经典题目:有n个整数,使前面各数顺序向后移动m个位置
问题描述: 有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前m个数. 程序代码: #include<iostream> #define MAXLEN 200 using na ...
- Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解
Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全 Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...
- C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数
各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 输出: 解释: 各位相加的过程为: + = , + = . 由于 是一位数,所以返回 . 进阶:你可以 ...
- 编写一个类,其中包含一个排序的方法Sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。
namespace test2 { class Program { /// <summary> /// 编写一个类,其中包含一个排序的方法Sort(),当传入的是一串整数,就按照从小到大的 ...
- JAVA生成一个二维数组,使中间元素不与相邻的9个元素相等,并限制每一个元素的个数
JAVA生成一个二维数组,使中间元素不与相邻的9个元素相等,并限制每一个元素的个数 示例如下 至少需要九个元素:"A","B","C",&q ...
随机推荐
- 2015年最新出炉的JavaScript开发框架
前端框架简化了开发过程中,像 Bootstrap 和 Foundation 就是前端框架的佼佼者.在这篇文章了,我们编制了一组新鲜的,实用的,可以帮助您建立高质量的 Web 应用程序的 JavaScr ...
- 《JavaScript高级程序设计》心得笔记-----第三篇章
第十章 1. DOM1级定义了一个Node接口,以Node类型实现(除IE以外),为了确保跨浏览器兼容,最好用nodeType属性与数字数值进行比较(someNode. nodeType==1) ...
- js获取url及url参数的方法
<script language="JavaScript" type="text/javascript"> function GetUrlParms ...
- linux 下权限问题
linux 系统下的文件权限 drwxr-xr-x. 2 weblogic weblogic 4096 Dec 26 2012 console-ext-rwxr-xr-x. 1 weblogic we ...
- unity 3消 游戏
3消游戏跟着智能手机流行到现在已经有很长一段时间,unity实现的3消 https://github.com/textcube/match3action 截图如下: 在阅读源码的时候不难发现,Game ...
- [大牛翻译系列]Hadoop(2)MapReduce 连接:复制连接(Replication join)
4.1.2 复制连接(Replication join) 复制连接是map端的连接.复制连接得名于它的具体实现:连接中最小的数据集将会被复制到所有的map主机节点.复制连接有一个假设前提:在被连接的数 ...
- 查看linux系统版本命令
一.查看内核版本命令: 1) [root@SOR_SYS ~]# cat /proc/version Linux version 2.6.18-238.el5 (mockbuild@x86-012.b ...
- 节点属性(DOM对象)
节点属性 在文档对象模型 (DOM) 中,每个节点都是一个对象.DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeType ...
- LoadRunner报26612错误的解决方案
LoadRunner压力测试时,一直会报12261错误,错误内容大概如下: Error -26612: HTTP Status-Code=500 (Internal Server Error) for ...
- java dom4j解析xml用到的几个方法
1. 读取并解析XML文档: SAXReader reader = new SAXReader(); Document document = reader.read(new File(fileName ...