永发信息网

c语言怎么返回二维数组

答案:3  悬赏:0  手机版
解决时间 2021-02-15 10:53
  • 提问者网友:wodetian
  • 2021-02-15 04:31
#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 *'
最佳答案
  • 五星知识达人网友:七十二街
  • 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;
}
全部回答
  • 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); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯