欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言实验——数组逆序

程序员文章站 2022-03-21 20:41:08
...

 

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic Discuss

Problem Description

有n个整数,使其最后m个数变成最前面的m个数,其他各数顺序向后移m(m < n < 100)个位置。

Input

输入数据有2行,第一行的第一个数为n,后面是n个整数,第二行整数m。

Output

按先后顺序输出n个整数。

Sample Input

5 1 2 3 4 5
2

Sample Output

4 5 1 2 3
#include<stdio.h>
int main()
{
	int n,m,a[100],i,k=1,temp,l;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	scanf("%d",&a[i]);	
	scanf("%d",&m);
	for(k=1;k<=m;k++)//还是冒泡思想的应用。本层控制着遍历交换的次数。 
	{
		l=n;
		for(i=1;i<n;i++)//本层循环将原来的最后的数一次一次通过循环完成代换。 
	 {
		temp=a[l-1];
		a[l-1]=a[l-2];
		a[l-2]=temp;
		l=l-1;//注意更新。 
	 } 
	
	
	} 
	for(i=0;i<n;i++)
    printf("%d ",a[i]);	
	return 0;
}

 做题历程:第一遍做的时候,没考虑到冒泡的时候要把倒数第m个数放到最前面,结果要放到前面的m个数位置放对了,但顺序放反了,可能做的时候考虑的有点多....

最重要的是遍历,交换数值,这是最重要的,大方向要搞明白。

 

 

 

 

相关标签: 遍历