#include <stdio.h>
#define N 10
// for循环
int main1()
{
int a[N] = {0,1,2,3,4,5,6,7,8,9};
int i;
int tmp;
for (i = 0; i < N/2; i++)
{
tmp = a[i];
a[i] = a[N-i-1];
int main()
{
int a[N] = {0,1,2,3,4,5,6,7,8,9};
int min = 0; // 数组第一个元素的下标
int max = N-1; // 数组最后一个元素的下标
int tmp;
while (min < max)
{
/*
tmp = a[min];
a[min] = a[max];
a[max] = tmp;
min++;
max--;
*/
tmp = a[min];
a[min++] = a[max];
a[max--] = tmp;
}
int i;
for (i = 0; i < N; i++)
{
printf ("%d\n", a[i]);
}
return 0;
}
a[N-i-1] = tmp;}for (i = 0; i < N; i++){printf ("%d\n", a[i]);}return 0;}
用for循环时,从第一个数到中间一半开始循环,依次交换收尾相对应的值,N/2无论奇数个数还是偶数个数
,都是只取一半。
int a[N] = {0,1,2,3,4,5,6,7,8,9};
int min = 0; // 数组第一个元素的下标
int max = N-1; // 数组最后一个元素的下标
int tmp;
while (min < max)
{
/*
tmp = a[min];
a[min] = a[max];
a[max] = tmp;
min++;
max--;
*/
tmp = a[min];
a[min++] = a[max];
a[max--] = tmp;
}
int i;
for (i = 0; i < N; i++)
{
printf ("%d\n", a[i]);
}
return 0;
}
用while循环时,可设一个变量也可设两个。两个变量,一个指向头,一个指向末尾,每次指头的小于
指向末尾的,说明他们还没“相遇”,一旦相遇,说明已经交换完,需要注意的使,每次交换完,对于
指向的要++或者--。
比较两种方法,第一种对于所有的对应交换的值很方便,但对于跳跃或者选择性的整体交换不够方便,
引入变量,对于程序的变量是增多了,但对于程序的运行便方便。相较来说,程序运行的思想是需要最高
的效率,巧妙的引用变量可以使问题变得简单。
#define N 10
// for循环
int main1()
{
int a[N] = {0,1,2,3,4,5,6,7,8,9};
int i;
int tmp;
for (i = 0; i < N/2; i++)
{
tmp = a[i];
a[i] = a[N-i-1];
int main()
{
int a[N] = {0,1,2,3,4,5,6,7,8,9};
int min = 0; // 数组第一个元素的下标
int max = N-1; // 数组最后一个元素的下标
int tmp;
while (min < max)
{
/*
tmp = a[min];
a[min] = a[max];
a[max] = tmp;
min++;
max--;
*/
tmp = a[min];
a[min++] = a[max];
a[max--] = tmp;
}
int i;
for (i = 0; i < N; i++)
{
printf ("%d\n", a[i]);
}
return 0;
}
a[N-i-1] = tmp;}for (i = 0; i < N; i++){printf ("%d\n", a[i]);}return 0;}
用for循环时,从第一个数到中间一半开始循环,依次交换收尾相对应的值,N/2无论奇数个数还是偶数个数
,都是只取一半。
int main()
{int a[N] = {0,1,2,3,4,5,6,7,8,9};
int min = 0; // 数组第一个元素的下标
int max = N-1; // 数组最后一个元素的下标
int tmp;
while (min < max)
{
/*
tmp = a[min];
a[min] = a[max];
a[max] = tmp;
min++;
max--;
*/
tmp = a[min];
a[min++] = a[max];
a[max--] = tmp;
}
int i;
for (i = 0; i < N; i++)
{
printf ("%d\n", a[i]);
}
return 0;
}
用while循环时,可设一个变量也可设两个。两个变量,一个指向头,一个指向末尾,每次指头的小于
指向末尾的,说明他们还没“相遇”,一旦相遇,说明已经交换完,需要注意的使,每次交换完,对于
指向的要++或者--。
比较两种方法,第一种对于所有的对应交换的值很方便,但对于跳跃或者选择性的整体交换不够方便,
引入变量,对于程序的变量是增多了,但对于程序的运行便方便。相较来说,程序运行的思想是需要最高
的效率,巧妙的引用变量可以使问题变得简单。