数组逆置
??基本思路:
??将a[0]与a[n-1]对换,再将a[1]与a[n-2]对换…直到将a[int(n-1)]与a[int((n-1)/2)-1]对换。
??如图所示:
??使用数组来实现:
//数组实现逆置
void conver_arr(int c,int a[])
{
int low =0;
int high = c -1;
for(int i =0; i < c/2; i++)
{
if(low < high)
{
int temp = a[c - i -1];
a[c - i -1]= a[i];
a[i]= temp;
}
}
}
??使用指针来实现:
//指针实现逆置
void conver_point(int c,int*a)
{
int*start;
start = a;
int*end;
end= a + c -1;
while(start <end)
{
int*temp =*start;
*start =*end;
*end= temp;
*start++;
*end--;
}
}
??其他代码:
//打印输出信息
void arr_print(int*a)
{
for(int i =0; i <10; i++)
{
printf("a[%d] = %d\n", i+1, a[i]);
}
}
int main(void)
{
int arr_value[10]={12,34,5,67,3,54,6,31,46,1};
int len =sizeof(arr_value)/sizeof(arr_value[0]);
conver_arr(len, arr_value);
conver_point(len, arr_value);
arr_print(arr_value);
return0;
}
??运行结果如下图所示:
时间: 2024-10-10 13:51:42