C语言中复制出整形数组的一部分以及倒序输出数组
- 当初在C语言的学习时曾做过这类题目,现在有学弟问到这个问题,顺便还找出了自己当时做的源代码。
/*设有一数列,包含10个数,已按升序排好,
现要求编一程序它能够把从指定位置k开始的n个数
按逆序重新排列并输出新的完整数列。试编程。
(例如;原数列为2,4,6,8,10,12,14,16,18
,20,若要求把从第4(k=4)个数开始的数
按逆序重新排列,则得到新数列为2,4,6,20,18,16,
14,12,10,8。)*/
#include<stdio.h>
#define k 4 //方便任意设置位置
void main()
{
int i,j,x;
int a[]={2,4,6,8,10,12,14,16,18,20};
int b[99]={0};//定义空数组b用来后面存放a中第k个及k个之后的元素。
for(i=0;i<k-1;i++)//先用循环顺序输出k之前的元素。
{
printf("%d ",a[i]);
}
for(i=0,j=k-1;j<10;j++,i++)//将k-1这个位置及其之后的元素存到新数组b中。
b[i]=a[j]; //b[]={8,10,12,14,16,18,20}
for(x=11-k-1;x>-1;x--)//用循环倒序输出刚刚的数组b
printf("%d ",b[x]);
printf("\n");
}