为了账号安全,请及时绑定邮箱和手机立即绑定

我有个问题,请求各位大佬解答。

C中怎么定义N维数组,,我本来想做个N维数组对角线元素之和的,编译完之后发现定义函数时候,形参定义成arr[][]好像不对,所以想到定义N维数组怎么定义。是arr[][]...[]么......

顺便把失败的代码贴一下吧。

#include <stdio.h>

#include <stdlib.h>

int diasum(int arr[n][n]...[n])

{

int n;

int i,j;

int sum;

int arr[n][n]={{1,2,...,n},{1,2,...,n},...,{1,2,...,n}};

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

if(i==j||(i+j)==n-1)

{

sum+=arr[i][j];

}

}

}

printf("对角线元素之和是%d\n",sum);

return 0;

}


/* run this program using the console pauser or add your own getch, system("pause") or input loop */


int main(int argc, char *argv[]) {

int arr[5][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}};

diasum(arr[5][5]);

return 0;

}


正在回答

1 回答

你做的不是n维数组,是n行n列的二维数组。

二维数组定义的时候,可以不指定行的数量,但是必须指定列的数量。

#include <stdio.h>

int diasum(int arr[][5],int n)

{

int i,j;

int sum = 0;

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

if(i==j||(i+j)==n-1)

sum+=arr[i][j];

}

}

printf("对角线元素之和是%d\n",sum);

return 0;

}

int main()

{

int arr1[][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}};

diasum(arr1,5);

return 0;

}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926020    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

我有个问题,请求各位大佬解答。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信