5059: 多维数组下标转换
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:207
解决:93
题目描述
用一维数组实现多维数组,对下标进行换算。
这道题为附加代码模式,主函数代码会自动附加在提交的代码后面,拼接成一份代码文件。
主函数代码如下:
这道题为附加代码模式,主函数代码会自动附加在提交的代码后面,拼接成一份代码文件。
主函数代码如下:
int main(){
int n;
while(scanf("%d",&n)!=EOF){
Array array;
Init(&array,n);
for(int i=0;i<n;i++){
scanf("%d",&array.L[i]);
}
int l[n];
for(int i=0;i<n;i++){
scanf("%d",&l[i]);
}
int index = GetIndex(&array,l);
printf("%d\n",index);
Destroy(&array);
}
return 0;
}
输入
输入包括多组数据,每组数据3行。
第一行为正整数n(小于等于5),表示多维数组的维数
第二行为空格分割等n个正整数(小于等于100),表示每一维的大小
第三行维空格分割的n个非负整数(小于等于100),表示多维下标
第一行为正整数n(小于等于5),表示多维数组的维数
第二行为空格分割等n个正整数(小于等于100),表示每一维的大小
第三行维空格分割的n个非负整数(小于等于100),表示多维下标
输出
对每组数据,输出多维下标对应对一维下标
样例输入 复制
3
3 4 5
1 1 1
3
3 4 5
0 0 0
样例输出 复制
26
0
提示
自定义结构体和函数完成上述功能,参考代码结构如下
#define MAX_DATA_LEN 10000
#define MAX_DIM_LEN 10
typedef struct Array{
int *data;
int dims;
int *L;
}Array;
void Init(Array * array, int dims){
}
void Destroy(Array * array){
}
int GetIndex(Array * array, int * l){
}