将一个数组中的元素按逆序重新存放。例如原来的顺序为:8,6,5,4,1, 要求改为:1,4,5,6,8。
#define N 7
void main()
{
int a[N] = { 12,9,16,5,7,2,1 }, k, s;
printf("\n初始数组:\n");
for (k = 0; k < N; k++)
{
printf("%4d", a[k]);
}
putchar('\n');
for (k = 0; k< N; k++)
{
s = a[k];
a[k] = a[6 - k];
a[6-k] = s;
printf("%3d",a[k]);
}
printf("\n交换后的数组:\n");
for (k = 0; k<N; k++)
{
printf("%4d", a[k]);
}
}
赋值这数组有7个元素,代码的写法是首尾一赋值,所以只要循环三次就可以,中间的5不动,如果循环7次就会出现1,2,7三个元素把12,9,16三个元素顶替的情况,在循环中单个打印会打印:1 2 7 5 7 2 1;
但是a[k]的值是没有变化的,只是k下表再加赋值的时候把本来交换过来的12,又换回了7,从而出现两种不同的值;
版权声明:本文为yiyezhichen原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。