写一段C语言实现二维查表输出,具体需实现功能如下:对共有8个元素的一维数组a[n],及共有8个元素的一维数组b[n],分别输入两个数组中的元素a[i]及b[j],(i,j<8),输出对应8*8的二维数组中的元素c[a[i],b[j]]中的值
时间: 2024-09-14 14:13:49 浏览: 30
C++两个一维数组相加求和
在C语言中,我们可以创建一个动态大小的二维数组来实现这个功能。假设我们已经有一维数组`a[]`和`b[]`,我们可以先通过用户输入获取索引`i`和`j`,然后计算二维数组`c[][]`的索引,并输出对应的值。这里是一个简单的示例:
```c
#include <stdio.h>
#define SIZE 8
// 动态分配二维数组
int (*c)[SIZE] = malloc(sizeof(int[SIZE][SIZE]));
void inputArrays(int a[], int b[], int c[][SIZE]) {
for (int i = 0; i < SIZE; i++) {
scanf("%d", &a[i]);
}
for (int j = 0; j < SIZE; j++) {
scanf("%d", &b[j]);
// 如果c矩阵还未初始化,先分配空间
if (!c) {
c = malloc(sizeof(int[SIZE][SIZE]));
}
c[a[i]][b[j]] = j + i * SIZE; // 示例,实际应用中可以根据需求赋值
printf("c[%d,%d]: %d\n", a[i], b[j], c[a[i]][b[j]]);
}
}
int main() {
int a[SIZE];
int b[SIZE];
// 输入一维数组元素
inputArrays(a, b, c);
// 回收内存
free(c);
return 0;
}
```
在这个例子中,用户需要先输入一维数组`a[]`和`b[]`的元素,程序会根据这两个数组的下标动态查找并输出二维数组`c[][]`的相应元素。
阅读全文