我有個問題,請求各位大佬解答。
C中怎么定義N維數(shù)組,,我本來想做個N維數(shù)組對角線元素之和的,編譯完之后發(fā)現(xiàn)定義函數(shù)時候,形參定義成arr[][]好像不對,所以想到定義N維數(shù)組怎么定義。是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;
}
2017-08-26
你做的不是n維數(shù)組,是n行n列的二維數(shù)組。
二維數(shù)組定義的時候,可以不指定行的數(shù)量,但是必須指定列的數(shù)量。
#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;
}