【发布时间】:2016-04-12 15:49:02
【问题描述】:
int checkdiag(int arr[][100], int size)
{
int h=0,i,j,count=0;
for(i=0;i<size;i++)
for(j=0;j<size;j++)
if(arr[i][j]==arr[++i][++i])
count++;
if(count=size)
h=1;
return(h);
}
这个函数应该检查我的二维数组,看看是否所有的对角线都是相同的值。最大数组大小为 100 x 100。
int
main(void)
{
int r,c,**m,i,j;
FILE*in;
in=fopen("matrix.txt","r");
fscanf(in,"%d",&r);
c=r;
m=(int**)malloc(r*sizeof(int*));
for(i=0;i<r;i++)
m[i]=(int*)malloc(c*sizeof(int));
for(i=0;i<r;i++)
{
for (j=0; j<c; j++)
{
fscanf(in,"%d",&m[i][j]);
}
}
fclose(in);
checkdiag(m,r)
return(0);
}
【问题讨论】:
-
你想做什么?
-
我有一个来自数据文件的二维数组,我需要编写一个函数来确定对角线的所有值是否都是相同的值。
-
您能否展示您实际尝试将二维数组传递给该函数的代码?
-
不,我需要更多。显示您定义 m 和 r 的代码,并将其包含在您的问题中。
-
顺便说一句,“所有对角线都是相同的值”你是指对角线上的所有元素还是你真的想检查所有 (199) 对角线是否只有 199 个不同的值?就像在 { {1,2,3},{4,1,2},{5,4,1}} 中?