翻转数组:
例如:arr[5]={1,2,3,4,5};
经过reverse_arr(arr,5);之后
数组变为:
arr[5]={5,4,3,2,1};
翻转子数组:
例如:arr[10]={1,2,3,4,5,6,7,8,9,10};
经过reverse_partArr(arr,0,4);
数组变为:
arr[10]={5,4,3,2,1,6,7,8,9,10};
也就是下标从0到4的子数组翻转了。
以下提供可运行的源代码:
#include<stdio.h>
//翻转整个数组和翻转子数组
void print_arr(int* arr,int len)
{
int i=0;
for(i=0;i<len;i++)
(i!=0 && i%10==0)?printf("%-2d \n",arr[i]):printf("%-2d ",arr[i]);
//上面这个三目表达式可以写成if-else,g++编译器不会报错,gcc好像会。相当于输出十个数换一行
}
//翻转整个数组
void reverse_arr(int* arr,int len)
{
int i=0;
int j=len-1;
int temp=0;
while(i<j)
{
temp=arr[i];//下面这行的i++不能写在这一行
arr[i++]=arr[j];//下面这行的j--不能写在这一行
arr[j--]=temp;
}
}
//翻转子数组
void reverse_partArr(int*