题目是这样的:
实现一个如下函数
char getValueFromArray(char arr[], int x,int y);
其中arr 为一个一维数组,使用getValueFromArray 将一个一维数组当成一个二维数组使用。
提示1:
以下是一个x最大长度 5,y最大值为 5 的二维数组arr1
y = 0 : 0 1 2 3 4
y = 1 : 5 6 7 8 9
y = 2 : 10 11 12 13 14
y = 3 : 15 16 17 18 19
y = 4 : 20 21 22 23 24
以下是一个长度为25的一维数组 arr2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
arr1[1][3] = 8
arr2[8] = 8 // arr2的下标8 = 1 * 5(二维数组中x的最大值) + 3
我写的代码是这样的
#include <stdio.h>
char getValueFromArray(char arr[], int x,int y)
{
int i,j,point = 0;
for( i=0; i < 5; i++)
for(j=0; j < 5; j++)
arr[point++]=point;
}
// 将一维数组转化为二维数组
void ewsz(int arr2[],int arr1[][5])
{
int i,j,point = 0;
for( i=0; i < 5; i++)
for(j=0; j < 5; j++)
arr1[i][j]=arr2[point++];
}
void print(int arr1[][5])
{
int i, j, temp;
for( i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
printf("%d\t", arr1[i][j]);
printf("\n");
}
}
int main()
{
int arr1[5][5];
char arr2[25];
getValueFromArray(arr2, 0, 0);
ewsz(arr2,arr1);
print(arr1);
return 0;
}
出错了但是不知道哪里错了
31 16 C:\Users\Mac\Desktop\C\2.cpp [Error] cannot convert 'char*' to 'int*' for argument '1' to 'void ewsz(int*, int (*)[5])'