gpt4 book ai didi

c - 使用指针找到矩阵的鞍点

转载 作者:行者123 更新时间:2023-11-30 17:32:57 25 4
gpt4 key购买 nike

如果某个条目 a[i][j] 在第 i 行中最小且在 j 列中最大,则称 N × M 矩阵具有鞍点。在以下示例中,7 是鞍点:

    1 2 3
a = 4 5 6
7 8 9

函数的复杂度应为 O(n log n)。

所需的函数原型(prototype)是:

int solution(int **A, int N, int M )

我的代码:

int solution(int **A, int N ,int M)
{
int i=0,j=0,k=0;
int P_row=0,P_col=0, flag=0;
node * matrix= (*A);

for(i=0;i<N;i++)
{
P_row=i;
P_row=j;
flag=0;

for(j=0;j<M;j++)
if(matrix[i][j]< matrix[P_row][P_col])
{
P_row=i;
P_row=j;
}

for(k=0;k<N;k++)
{
if(matrix[k][P_col]> matrix[P_row][P_col])
{
flag=1;
break;
}
}
if(flag==0)
break;
j=0;
}
if(flag==0)
printf("\n The saddle point is %d at row=%d col=%d", matrix[P_row][P_col],P_row,P_col);
else
printf("there was no saddle point");
}

当我运行代码时,我在第 5 行、第 14 行、第 22 行中收到编译错误,其中我在嵌套 for 循环中指定了 if 条件。请告诉我根据给定的输入参数在哪里修改我的代码。

最佳答案

这适用于您的示例:P_行=i;P_行=j;这显然是一个很容易修复的错误。

#include <cstdio>

int solution(int **A, int N, int M );

int A1[] = {1, 2, 3};
int A2[] = {4, 5, 6};
int A3[] = {7, 8, 9};

int* A[] ={A1, A2, A3};
int main()
{
solution(A, 3, 3);
}
typedef int** node;


int solution(int **A, int N ,int M)
{
int i=0,j=0,k=0;
int P_row=0,P_col=0, flag=0;
node matrix= (A);

for(i=0;i<N;i++)
{
P_row=i;
P_col=j;
flag=0;

for(j=0;j<M;j++)
if(matrix[i][j]< matrix[P_row][P_col])
{
P_row=i;
P_col=j;
}

for(k=0;k<N;k++)
{
if(matrix[k][P_col]> matrix[P_row][P_col])
{
flag=1;
break;
}
}
if(flag==0)
break;
j=0;
}
if(flag==0)
printf("\n The saddle point is %d at row=%d col=%d", matrix[P_row][P_col],P_row,P_col);
else
printf("there was no saddle point");
return 0;
}

关于c - 使用指针找到矩阵的鞍点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23925411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com