#include <stdio.h>
/*
功能:判断一个矩阵array[row][column]是否为一个函数
伪码:
bool IsFunction(int a[x][y])
{
for (i=0; i<x, i++)
{
bool bFirst = false; // 记录是否出现过1
for (j=0; j<y; j++)
{
if (a[i][j] > 0)
{
if (bFirst) // 如果已出现过1,则肯定不是函数
return false;
else
bFirst = true; // 记录已出现过1
}
}
}
return true; // 如果前面没有判断是错误的,则肯定为函数
}
*/
bool IsFunction(int* array, int row, int column)
{
for (int i=0; i<row; i++)
{
bool bFirst = false;
for (int j=0; j<column; j++)
{
// 相当于array[i][y];
int num = *(array + column*i + j);
if (num > 0)
{
if (bFirst)
return false;
else
bFirst = true;
}
}
}
return true;
}
int main(int argc, char* argv[])
{
// 测试的矩阵
int array[5][4] =
{
{0, 0, 1, 0},
{0, 0, 1, 0},
{0, 1, 0, 0},
{0, 0, 0, 1},
{1, 0, 0, 0},
};
bool bFunction = IsFunction((int*)&array, 5, 4);
if (bFunction)
printf("是函数/n");
else
printf("不是函数/n");
return 0;
}