关于宏定义max函数和编译器的小问题跪求大佬解答
查看原帖
关于宏定义max函数和编译器的小问题跪求大佬解答
955141
tndbsfk楼主2023/3/30 19:44

为什么

#define max(a,b) a>b?a:b

会出错。(运行结果是31)

#define max(a,b) (a>b?a:b)

不会。(运行结果是34) 我的完整AC代码如下

#include<stdio.h>
#define max(a,b) (a>b?a:b)
int main()
{
	int m,n,dp[51][51][51][51]={0},map[51][51]={0},i,j,t,k;
	scanf("%d%d",&m,&n);
	for(i=1;i<=m;i++)
		for(j=1;j<=n;j++)
	scanf("%d",&map[i][j]);
	for(i=1;i<=m;i++)
		for(j=1;j<=n;j++)
			for(t=1;t<=m;t++)
				for(k=1;k<=n;k++)
				{
					dp[i][j][t][k]=max(max(dp[i-1][j][t-1][k],dp[i-1][j][t][k-1]),max(dp[i][j-1][t-1][k],dp[i][j-1][t][k-1]));
					if(i==t&&j==k)
					dp[i][j][t][k]+=map[i][j];
					else
					dp[i][j][t][k]+=map[i][j]+map[t][k];
				}
	printf("%d",dp[m][n][m][n]);
	return 0;
}


还有一个小问题,这个代码在codeblocks和devc上还没运行就结束了。

2023/3/30 19:44
加载中...