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),表示多维下标

输出

对每组数据,输出多维下标对应对一维下标

样例输入 复制

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){
}


来源/分类