我必須編寫一個程序,檢查矩形矩陣(nxn)的主對角線中的元素(數字)是否相同(如果是,則返回1,如果不是則返回0)使用被調用的函數由main()
。矩陣從文件中讀取,在main()
中完成。如何檢查矩形矩陣主對角線上的元素是否相同?
這裏是我的功能至今:(功能checkdiag()
似乎並不奏效,只有main()
功能是打印出的數據)
#include <stdio.h>
int checkdiag(int matrix[][100], int size)
{
int i,j;
for (i=0; i<size; i++)
{
for (j=0; j<size; j++)
{
if (matrix[i][100]==matrix[j][100])
{
return (1);
printf ("\nThe elements in the main diagonal of the matrix are the same.\n");
}
else
{
return (0);
printf ("\nThe elements in the main diagonal are not the same.\n");
}
}
}
}
int main (void)
{
int matrix[100][100];
int size, diag;
int i,j;
FILE *data;
data= fopen("data10.txt", "r");`
fscanf (data, "%d", &size);
printf ("The size of the matrix is %dx%d, and the matrix is:\n", size, size);
for (i=0; i<size; i++)
{
for (j=0; j<size; j++)
{
fscanf (data, "%d", &matrix[i][j]);
printf (" %d% ", matrix[i][j]);
}
printf ("\n");
}
diag= checkdiag(matrix, size);
}
如果有人可以請幫我看看,我要去的地方錯了, 我會很感激!
P.S我使用的文件是:
3
4 5 6
7 8 9
3 6 7
當文件中的第一個值(3)爲矩陣的大小。 (即3x3)
return(1)應該只發生在完成循環之後。所有條目必須匹配才能保持一致,但只有一個不匹配表明對角線不是全部的一個值。 – Jiminion