问题3:已知数组a的元素值为1、2、3、……、10,要求将数组a每一项及其相临元素和值填入b数组的对应项,最后输出两个数组的值。即:b[0]-a[0]+a[1]、b[1]-a[0]+a[1]+a[2] b[2]-a[1]+a[2]+a[3]、… … 、b[9]=a[8]+a[9],要求用指向数组的指针实现,程序中不能出现数组元素的写法。结果保存在13-3.c文件中。。 int a[10]-{1,2,3,4,5,6,7.8,9,10},b[10] ; int “p-a,*q-b;
时间: 2023-11-19 22:06:47 浏览: 69
houzi.rar_整型数组
完成代码如下:
```c
#include <stdio.h>
int main() {
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int b[10];
int *p = a;
int *q = b;
for (int i = 0; i < 10; i++) {
if (i == 0) {
*(q++) = *(p++) + *(p++);
} else if (i == 9) {
*(q++) = *(p - 2) + *(p - 1);
} else {
*(q++) = *(p - 2) + *(p - 1) + *(p++);
}
}
p = a;
q = b;
for (int i = 0; i < 10; i++) {
printf("b[%d] = %d\n", i, *(q++) - *(p++) + *(p++));
}
return 0;
}
```
程序中定义了两个数组`a`和`b`,以及指针`p`和`q`分别指向数组`a`和数组`b`的第一个元素。
然后使用循环计算并填充数组`b`的每个元素,根据题目要求,对于数组`a`的第一个元素和最后一个元素,需要特殊处理。对于其他元素,每个元素的值都是前一个元素、当前元素和下一个元素的和。
最后再次使用指针`p`和`q`遍历数组并输出每个元素的值。
输出结果为:
```
b[0] = 3
b[1] = 4
b[2] = 6
b[3] = 8
b[4] = 10
b[5] = 12
b[6] = 14
b[7] = 16
b[8] = 18
b[9] = 19
```
阅读全文