#include<stdio.h>
#include<math.h>
int *creatmatrix(void)
{
int a[3][3],x;
printf("pelease input data");
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
a[i][j]=scanf("%f",x);
}
return a;
};
提示的错位为:cannot convert from 'int [3][3]' to 'int *'
c语言怎么返回二维数组
答案:3 悬赏:0 手机版
解决时间 2021-02-15 10:53
- 提问者网友:wodetian
- 2021-02-15 04:31
最佳答案
- 五星知识达人网友:七十二街
- 2021-02-15 05:04
int (*)[3] creatmatrix(void) //二维数组只能这样返回类型
{
static int a[3][3]; //需要定义成静态才不会丢失
printf("pelease input data");
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
scanf("%d",&a[i][j]); //----整数是%d
}
return a;
};
int main()
{
int (*p)[3]=creatmatrix(void);
return 0;
}
{
static int a[3][3]; //需要定义成静态才不会丢失
printf("pelease input data");
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
scanf("%d",&a[i][j]); //----整数是%d
}
return a;
};
int main()
{
int (*p)[3]=creatmatrix(void);
return 0;
}
全部回答
- 1楼网友:蓝房子
- 2021-02-15 05:54
我想可能是这样的!
int *creatmatrix(void) 返回的类型是int *
而 return a;返回的是int[3]类型的指针
- 2楼网友:duile
- 2021-02-15 05:32
如果是在main中动态获得数组的值,那么,最好在main里面创建数组,然后把数组传给fun进行修改,等fun返回以后,main获得的就是修改后的数组了。
void func(char array[1000][4])
{
array[5][2] = 100;
}
main()
{
char arr[1000][4];
fun(arr);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯