解题思路:

1:把a[] 中要转移的m个数存入另一个数组 b[];

2:a[] 从末尾依次等于前一个数,移动N-m次;

3:把b[]中的数,放到a[]的前面;
4:输出a[];

参考代码:

#include <stdio.h>
#include <malloc.h>
int main()
{
    int    *a    = NULL;
    int    *b    = NULL;
    int    N;
    scanf( "%d", &N );   //输入N

    a = (int *) malloc( N * sizeof(int) );  //开辟空间存N个数

    for ( int i = 0; i < N; i++ )   //输入N个数
        scanf( "%d", &a[i] );

    int m;
    scanf( "%d", &m );      //输入转移个数m
    b = (int *) malloc( m * sizeof(int) );   //开辟空间存转移数

    for ( int i = 0; i < m; i++ )   //把a[] 中要转移的m个数存入另一个数组 b[];
    {
        b[i] = a[N - m]; N++;
    }

    for ( int j = 9; j >= m; j-- )  //a[] 从末尾依次等于前一个数,移动N-m次;
        a[j] = a[j - m];

    for ( int i = 0; i < m; i++ )  //把b[]中的数,放到a[]的前面;
        a[i] = b[i];

    for ( int i = 0; i < 10; i++ )  //输出a[];
        printf( "%d ", a[i] );
        
        return (0);
}

别忘点赞哦-.-

点赞(37)
 

0.0分

34 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 38 条评论

奥特曼 3年前 回复TA
#include<stdio.h>
int main()
{
    int a[10000],b,j,i,n,m;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
        scanf("%d",&m);
    for(i=n-m;i<n;i++)
    {
        printf("%d ",a[i]);
    }
    for(i=0;i<n-m;i++)
    printf("%d ",a[i]);
    return 0;
}
hero 3年前 回复TA
#include<stdio.h>
#include<malloc.h>
void fun(int a[],int b[]);
int n,m,i;
int main(){
scanf("%d",&n);
int *a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++){
scanf("%d",&a[i]);
} scanf("%d",&m);
 int *b=(int*)malloc(m*sizeof(int));
 fun(a,b);
 for(i=0;i<n;i++){ printf("%d ",a[i]);
 }
} 

void fun(int a[],int b[]){ int d=n-m;
for(i=0;i<m;i++){
b[i]=a[d];d++;
} int e=n-1; int f=n-m-1;
for(e;e>=m;e--){
a[e]=a[f];f--;	
}
for(i=0;i<m;i++){
a[i]=b[i];
}
}  这样子任何情况都适用
hero 3年前 回复TA
@爱熬夜的菜鸟2333 他J直接赋值为9,如果n不等于10的话就用不了了
良十一 3年前 回复TA
@爱熬夜的菜鸟2333 第21行N++把N值弄大了,所有多输出了几个垃圾值,改一下就好了
笔墨 3年前 回复TA
@爱熬夜的菜鸟2333 ????
jack 3年前 回复TA
额,不是要定义函数吗
000882临风 3年前 回复TA
@葡萄 你这样做对了吗
000882临风 3年前 回复TA
@葡萄 我我也用的这个方法,但不知道为什么提交以后格式不对
爱熬夜的菜鸟2333 3年前 回复TA
这个答案有问题啊!试试其他情况 得不出来结果,只能骗过测试,不知道怎么这么多人评分这么高
小白船 3年前 回复TA
照楼主两个数组的启发想到的这个方法
#include<iostream>
using namespace std;
int main()
{
	int a[100],b[100];
	int i,m,n;
	cin >> n;
	for(i = 0;i < n;i++)
	{
		cin >> a[i];
		b[i] = a[i];
	}
	cin >> m;
	for(i = 0;i < n;i++)
	{
		if(m + i + 1 > n)
		{
			a[m+i-n] = b[i];
		}
		else
			a[m+i] = b[i];
	}
	for(i = 0;i < n;i++)
	{
		cout << a[i] << " ";
	}
	cout << endl;
	return 0;
}