从键盘为数组a[4][4]输入数据,分别用指向数组元素的指针变量和指向一维数组的指针变量输入输出数组元素,求该数组每一行的最大值,将这些值保存在一维数组b[4]中。运行结果示例如下:
时间: 2023-06-05 12:47:53 浏览: 192
这是一道编程题,需要从键盘输入一个4行4列的数组a,然后用指向数组元素的指针变量和指向一维数组的指针变量分别输入输出数组元素。接着,需要求出该数组每一行的最大值,并将这些值保存在一维数组b中。
具体实现方法可以参考以下代码:
```c
#include <stdio.h>
int main() {
int a[4][4], b[4];
int *p, *q;
int i, j, max;
// 从键盘输入数组a
printf("请输入4行4列的数组a:\n");
for (i = ; i < 4; i++) {
for (j = ; j < 4; j++) {
scanf("%d", &a[i][j]);
}
}
// 用指向数组元素的指针变量输入输出数组元素
printf("用指向数组元素的指针变量输入输出数组元素:\n");
for (i = ; i < 4; i++) {
for (j = ; j < 4; j++) {
p = &a[i][j];
printf("%d ", *p);
}
printf("\n");
}
// 用指向一维数组的指针变量输入输出数组元素
printf("用指向一维数组的指针变量输入输出数组元素:\n");
for (i = ; i < 4; i++) {
q = a[i];
for (j = ; j < 4; j++) {
printf("%d ", *(q + j));
}
printf("\n");
}
// 求每一行的最大值,保存在一维数组b中
for (i = ; i < 4; i++) {
max = a[i][];
for (j = 1; j < 4; j++) {
if (a[i][j] > max) {
max = a[i][j];
}
}
b[i] = max;
}
// 输出一维数组b
printf("每一行的最大值:\n");
for (i = ; i < 4; i++) {
printf("%d ", b[i]);
}
printf("\n");
return ;
}
```
运行结果示例如下:
```
请输入4行4列的数组a:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
用指向数组元素的指针变量输入输出数组元素:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
用指向一维数组的指针变量输入输出数组元素:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
每一行的最大值:
4 8 12 16
```
阅读全文