|
|
第8章习题
1.输入若干个整数并将它们保存在数组里,然后将这个数组的所有元素循环右移。移动的次数通过输入指定,移动时不得借助于其他数组。请编写这个程序。
参考答案:
# include <stdio.h>
# include <stdlib.h>
# define N 6
int main (void)
{
int a [N];
printf ("Input %d numbers:", N);
for (size_t x = 0; x < N; x ++) scanf ("%d", & a [x]);
int tmp = a [N - 1];
for (size_t x = N - 1; x > 0; x --) a [x] = a [x - 1];
a [0] = tmp;
for (size_t x = 0; x < N; x ++) printf ("%10d", a [x]);
}
2.通过命令行输入9个整数并将它们保存在数组里,然后将数组逆置(元素的值反向颠倒存放)并打印逆置前后的结果,要求只能在原数组上操作,不得借助于其他数组。
参考答案:
# include <stdio.h>
# include <stdlib.h>
# define N 9
int main (void)
{
int a [N];
printf ("Input %d numbers:", N);
for (size_t x = 0; x < N; x ++) scanf ("%d", & a [x]);
int * p = a, * q = & a [N - 1], tmp;
while (p <= q)
{
tmp = * p;
* p = * q;
* q = tmp;
p ++;
q --;
}
for (size_t x = 0; x < N; x ++) printf ("%10d", a [x]);
}
|
|