数组的三种逆序方法:for循环,while循环,指针方式
2018-01-23 17:29
344 查看
#include <stdio.h>
//for方法
int main1(){
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int i ;//定义下标i,逆序是把前后对应的元素交换自身存的值
int tmp;//临时存储区
//i < a大小(10)的一半,若以i < a来循环,则数组序列不变
for (i = 0; i < sizeof(a)/sizeof(int)/2; i++)
{
tmp = a[i];
a[i] = a[sizeof(a)/sizeof(int)-i-1];
a[sizeof(a)/sizeof(int)-i-1] = tmp;
}
//打印 for (i = 0; i < 10; i++) { printf ("%d\n", a[i]); } return 0; }
//while方法
int main2(){
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int min = 0;//数组开头元素下标
int max = sizeof(a)/sizeof(int)-1;//数组结尾元素下标
int tmp;
while (min < max)
{
tmp = a[min];
a[min++] = a[max];
a[max--] = tmp;
}
int i;
for (i = 0; i < 10; i++)
{
printf ("%d\n", a[i]);
}
return 0;
}
//指针方式
int main(){
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int *p1 = a;//
int *p2 = a + sizeof(a)/sizeof(a[0]) - 1;
int i, tmp;
while (p1 < p2)
{
tmp = *p1;
*p1++ = *p2;
*p2-- = tmp;
}
for (i = 0; i < 10; i++)
{
printf ("%2d", a[i]);
}
printf ("\n");
return 0;
}
相关文章推荐
- 用python实现从1加到100的三种方法: for循环,while循环,导入模块法
- 8. 用while循环计算打印2到100的偶数和(三种方法)
- PHP循环遍历数组的3种方法list()、each()和while总结
- 【Java学习笔记之六】java三种循环(for,while,do......while)的使用方法及区别
- PHP foreach、while、for三种循环遍历方式
- php用压栈的方式,循环遍历无限级别的数组(非递归方法)
- Java交换变量的三种方式、三目运算符、while循环和Dowhile循环
- 指针的方式逆序数组
- PHP循环遍历数组的3种方法list()、each()和while总结
- PHP循环遍历数组的3种方法list()、each()和while总结
- laravel查询得到的数据(为对象object)无法进行数组循环遍历,而且不能用数组方式访问和查看的原因以及解决方法
- 使用指针的方式实现数组逆序
- PHP循环遍历数组的3种方法list()、each()和while总结
- while 语句的三种控制/结束循环方式
- while循环和for循环的比较,习题33,笨方法学python
- 采用指针访问方式从键盘给数组a[N]输入数据,然后对元素值重新按逆序存放并输出 .
- 迭代器循环数组和遍历Map的三种方式
- js小练习:利用getElementsByTagName方法、for循环、this指针、数组实现对多个相同元素value值的改变
- 1、打印二进制机器码,程序内存分析,大端序小端序,指针数组,数组指针,数组的三种访问方式,typedef,#if-0-#endif,求数组大小,括号表达式
- C#中的三种循环:while、do..while..、for循环