原题链接:[编程入门]自定义函数之数字后移
解题思路:通过两个数组来完成,原数组输入原数字,并将要移动的数字装入另一个数组中,原数组中的剩下的数字后移,然后将另一个数组中的数字赋给原数组即可。
涉及知识点:数组中下标的使用;
代码如下:
#include<stdio.h> #define z 100 int main() { int a[z]; int b[z]; int i,m,n; scanf("%d",&n); //输入要输入的个数; for(i=0;i<n;i++)//通过数组,循环输入n个数;注意:n一定要小于z。z表示可以输入100个数字。 { scanf("%d",&a[i]); } scanf("%d",&m);//输入要移动的个数;注意:(n-m)实际上就是数组中要移动到最前面的那个数字(也就是要移动到a[0]的那个数字)。 for(i=0;i<m;i++)//用另一个数组先将原数组中要向前移动的m个数字装起来。 { b[i]=a[n-m+i];//n-m是原数组中第一个要装入到另一个数组中的下标,加i的意思是要装入m个该数组中的数字和它的下标(i<m). } for(i=n-1;i>=m;i--)//将该数组中剩下的数字,向后移动位置。n-1,是最后一位数的下标。i>=m是后移多少位的意思。i--是后移。 { a[i]=a[i-m];//比如输入了8个数,要移动3个数,那么i=8-1,等于7,a[7]=a[7-3],这样遍历个数后移。 } for(i=0;i<m;i++)//将另一个数组中的数(要移动的m个数),放回原数组中。 { a[i]=b[i]; } for(i=0;i<n;i++)//遍历输出。 { printf("%d ",a[i]); }printf("\n"); return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复