麻烦大佬帮我看看哪里错了,非常感谢。

xyfffz 2021-05-21 10:24:57

#include <stdio.h>

int n;
int max(int row, int a[][n], int n);
int min(int column, int a[][n], int n);

int main(void)
{
scanf("%d", &n);
int i, j, a[n][n];

for (i = 0;i < n;i++)
{
for (j = 0;j < n;j++)
{
scanf("%d", &a[i][j]);
// if (j != n - 1)
// scanf(" ");
}
// scanf("\n");
}

for (i = 0;i < n;i++)
{
if (i == min(max(i, a, n), a, n))
{
printf("%d %d", i, max(i, a, n));
goto end;
}
}
printf("NO");

end: return 0;
}

int max(int row, int a[][n], int n)
{
int i, column = 0;
for (i = 1;i < n;i++)
{
if (a[row][i] > a[row][column])
column = i;
}
return column;
}

int min(int column, int a[][n], int n)
{
int i, row = 0;
for (i = 1;i < n;i++)
{
if (a[i][column] < a[row][column])
row = i;
}
return row;
}

...全文
25657 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qzjhjxj 2021-05-21
  • 打赏
  • 举报
回复
修改如下,供参考:
#include <stdio.h>


int max(int row, int **a, int n);
int min(int column, int **a, int n);

int main(void)
{
     int n;
     int i, j, **a; //a[n][n];
     scanf("%d", &n);

     a=new int*[n];
     for(i=0;i<n;i++) a[i]=new int[n];

     for (i = 0;i < n;i++)
	 {
		for (j = 0;j < n;j++)
		{
			scanf("%d", &a[i][j]);
//			if (j != n - 1)
//				scanf(" ");
		}
//		scanf("\n");
	}

	for (i = 0;i < n;i++)
	{
		if (i == min(max(i, a, n), a, n))
		{
			printf("%d %d", i, max(i, a, n));
			goto end;
		}
	}
	printf("NO");

	end:
        for(i=0;i<n;i++)delete []a[i];
        delete []a;
        
        return 0;
 } 
 
int max(int row, int **a, int n)
{
	int i, column = 0;
	for (i = 1;i < n;i++)
	{
		if (a[row][i] > a[row][column])
			column = i;
	}
	return column;
}

int min(int column, int **a, int n)
{
	int i, row = 0;
	for (i = 1;i < n;i++)
	{
		if (a[i][column] < a[row][column])
			row = i;
	} 
	return row;
}
赵4老师 2021-05-21
  • 打赏
  • 举报
回复
老编译器不支持变量n作为数组下标声明动态大小。
xyfffz 2021-05-21
  • 打赏
  • 举报
回复
引用 5 楼 赵4老师 的回复:
或者干脆使用STL的vector
STL的vector是c++用的,我写的是c语言。这个new和delete我查了一下,不会用。可以麻烦你帮我改一下代码吗?非常感谢。
observer_616 2021-05-21
  • 打赏
  • 举报
回复
c++不支持以变量创建数组,不是编译器问题,解决方法同楼上
赵4老师 2021-05-21
  • 打赏
  • 举报
回复
或者干脆使用STL的vector
赵4老师 2021-05-21
  • 打赏
  • 举报
回复
建议还是老老实实使用new、delete和new[]、delete[]方式创建/销毁动态数组。
xyfffz 2021-05-21
  • 打赏
  • 举报
回复
引用 1 楼 赵4老师 的回复:
老编译器不支持变量n作为数组下标声明动态大小。
我配置了MinGW GCC 11.1.0,请问怎么还是报错呀?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧