有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。编写一个函数实现上述功能,在主函数中输入n个整数,并输出调整后的n个数

第一种方法:指针法

#include<stdio.h>

#include<stdlib.h>

int  w(int *d,int e,int g)

{

int i,j,t;

int *r;

j=0;

for(i=0;i<g;i++)

{

t=*(d+i);

*(d+i)=*(d+e-g+j);

*(d+e-g+j)=t;

j++;

}

return *d;

}

int main()

{

int a[100];

int i,j,k,n,m;

scanf("%d%d",&n,&m);

for(i=0;i<n;i++)

scanf("%d",&a[i]);

k=n;

w(a,k,m);

for(i=0;i<n;i++)

printf("%d ",a[i]);

printf("\n");

system("pause");

return 0;

}

第二种方法:数组法

#include<stdio.h>

#include<stdlib.h>

void  w(int d[],int e,int g)

{

int i,j,t;

//int *r;

j=e;

for(i=0;i<g;i++)

{

t=d[i];

d[i]=d[j-1];

d[j-1]=t;

j--;

}

for(i=0;i<e;i++)

printf("%d ",d[i]);

printf("\n");

//return *d;

}

int main()

{

int a[100];

int i,j,k,n,m;

scanf("%d%d",&n,&m);

for(i=0;i<n;i++)

scanf("%d",&a[i]);

k=n;

w(a,k,m);

/* for(i=0;i<n;i++)

printf("%d ",a[i]);

printf("\n");*/

system("pause");

return 0;

}

时间: 2024-10-05 04:44:59

有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。编写一个函数实现上述功能,在主函数中输入n个整数,并输出调整后的n个数的相关文章

10.4 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。

有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图.写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数. 看了下上机指导上的答案,感觉自己写的这段代码有点low. //一个数组一个指针 #include <stdio.h> #define N 10 #define M 3 int b[N]; int * p=b; int main(){ void change(int a[N],int m); int a[N]={1,2,3,4,5,6,7,8,9,0};

输入5个整数,找出其中最大整数和最小整数所在的位置,并将二者对调,然后输出调整后的5个数。

#include<stdio.h> main() { int arr[5], max, min, i, j, k; printf("Please enter five integers:\n"); for(i=0; i<5; i++) scanf("%d", arr[i]); min = arr[0]; for(i = 0; i < 5; i++) if(arr[i] < min) { min = arr[i]; j = i; } ma

Problem C: 指针:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数

#include<stdio.h> int move(int *x,int n,int m) { int t[255]; int i; //int *p;指针循环变量p for(i=0;i<n;i++) t[i]=x[i]; for(i=0;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,

给定两个32位的整数N和M,以及表示比特位置的i和j。编写一个方法,将M插入到N中, * 使得M从N的第j位开始,到第i位结束

1 /* 2 * 给定两个32位的整数N和M,以及表示比特位置的i和j.编写一个方法,将M插入到N中, 3 * 使得M从N的第j位开始,到第i位结束,假定从j位到i位足以容纳M,也即是M=10011 4 * 那么j和i之间至少可以容纳5个数,假如,不可能出现j=3,i=2的情况,因为第三位和第二位之间放不下M 5 * 例如 6 * N=1000000000(1024) 7 * M=10011(19) 8 * i=2,j=6,输出10001001100 9 * 思路如下: 10 * 1.将N中的从

剑指offer-调整数组内奇偶数顺序

题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 解题思路 时间换空间的: 思想可以参考插入排序.时间复杂度为o(n^2),空间复杂度为o(1) class Solution { public: void reOrderArray(vector<int> &array) { int i,j; int tmp; for(i=0;i<array.siz

c程序设计 8.12 用牛顿迭代法求根。方程为:ax^3+bx^2+cx+d=0 ,系数a,b,c,d由主函数输入。求X在1附近的一个实根。求出后由主函数输出.

//https://baike.baidu.com/item/%E7%89%9B%E9%A1%BF%E8%BF%AD%E4%BB%A3%E6%B3%95/10887580?fr=aladdin#4 //百度牛顿迭代法 #include <stdio.h> #include <math.h> double solut(double a,double b,double c,double d) { double x1=1,x,f,f1; //迭代 do { x=x1; f=((a*x+b

以流方式读写文件:文件菜单打开一个文件,文件内容显示在RichTexBox中,执行复制、剪切、粘贴后,通过文件菜单可以保存修改后的文件。

MainWindow.xaml文件 1 <Window 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:

函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在屏幕上

#include <stdio.h> void fun(char *s, int a, double f) { /**********found**********/ FILE* fp;//定义文本文件类型 char ch; fp = fopen("file1.txt", "w"); fprintf(fp, "%s %d %f\n", s, a, f); fclose(fp); fp = fopen("file1.txt&q

有n个整数,使前面各数向后移m个位置,最后m个数变成最前面m个数

有n个整数,使前面各数向后移m个位置,最后m个数变成最前面m个数.写一函数实现以上功能,在主函数中输入n个整数,并输出调整后的n个数(要求使用指针). #include<iostream> //#include<vector> using namespace std; int n,m; int array[1000]; void input() { cout<<"请输入n的值:"<<endl; cin>>n; cout<