数组倒置第二种方法:直接在数组内进行倒置
第一个元素和最后一个元素交换,
第二个元素和倒数第二个元素交换
第三个元素和倒数第三个元素交换......
数组元素个数为偶数,每个元素都能交换一次;
数组元素个数为奇数,最中间的元素不变。
【程序代码】
#include <stdio.h>
int main(void)
{
int a[9] = {10, 11, 12, 13, 9, 15, 16, 17, 18};
int i = 0; //循环变量,i表示数组下标,从0开始
int j = 8; //循环变量2, j的值表示数组的最后一个元素下标
int temp; //互换时的中间存储变量
for(; i<j; i++, j--)
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
for(i=0; i<9; i++)
{
printf("数组倒置后的结果为a[%d] = %d\n", i, a[i]); //\x20表示空格
}
printf("\n");
return 0;
}
【程序代码2】
直接从键盘里输出,给数组a赋值
#include <stdio.h>
int main(void)
{
int a[10] = {0};
int i = 0; // 表示数组的第一个元素的下标
int j = 9; //表示数组的最后元素一个下标
int temp; //存放中间变量
printf("请给数组a输入10个整数:");
for(; i<10; i++)
{
scanf("%d", &a[i]);
printf("数组a[%d] = %d\n", i, a[i]);
//数组元素的输出需要for循环
}
printf("\n");
//数组倒置,互换算法
for(i=0; i<j; i++, j--)
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
//输出倒置后的数组
for(i=0; i<10; i++)
{
printf("数组倒置后为a[%d] = %d\n", i, a[i]);
}
return 0;
}