#include <stdio.h>
#define N 100 //宏定义 后面改值方便
int main(void)
{
int a[N]={1,34,23,67,89,41,45,78,99};
if(N%2==0) //如果数组长度为偶数,则代表从两头往中间交换 最后最中间的这两个值还需要交换 他们的值差1
{
int m=0,n=N-1; //从数组的第一位数与最后一位数开始交换
for(;m<n;m++,n--)
{
int b=a[m];
a[m]=a[n];
a[n]=b;
}
int b=a[m]; //最中间的两位换值
a[m]=a[n];
a[n]=b;
}
else //如果数组的长度为奇数 则代表最后最中间的那位不动
{
int m=0,n=N-1;
for(;m<(N/2+1) || n>(N/2+1);m++,n--)//条件表达式就是m<(N/2+1) || n>(N/2+1)小于或大于中间值
{
int b=a[m];
a[m]=a[n];
a[n]=b;
}
}
for(int j=0;j<N;++j)
if(a[j]!=0)
printf("%d\t",a[j]);
putchar('\n');
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交