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

xyfffz 2021-05-21 10:24:57

  1. #include <stdio.h>

  2. int n;
  3. int max(int row, int a[][n], int n);
  4. int min(int column, int a[][n], int n);

  5. int main(void)
  6. {
  7. scanf("%d", &n);
  8. int i, j, a[n][n];

  9. for (i = 0;i < n;i++)
  10. {
  11. for (j = 0;j < n;j++)
  12. {
  13. scanf("%d", &a[i][j]);
  14. // if (j != n - 1)
  15. // scanf(" ");
  16. }
  17. // scanf("\n");
  18. }

  19. for (i = 0;i < n;i++)
  20. {
  21. if (i == min(max(i, a, n), a, n))
  22. {
  23. printf("%d %d", i, max(i, a, n));
  24. goto end;
  25. }
  26. }
  27. printf("NO");

  28. end: return 0;
  29. }

  30. int max(int row, int a[][n], int n)
  31. {
  32. int i, column = 0;
  33. for (i = 1;i < n;i++)
  34. {
  35. if (a[row][i] > a[row][column])
  36. column = i;
  37. }
  38. return column;
  39. }

  40. int min(int column, int a[][n], int n)
  41. {
  42. int i, row = 0;
  43. for (i = 1;i < n;i++)
  44. {
  45. if (a[i][column] < a[row][column])
  46. row = i;
  47. }
  48. return row;
  49. }

...全文
给本帖投票
25733 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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,322

社区成员

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

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

手机看
关注公众号

关注公众号

客服 返回
顶部