C 为什么这段代码创建了正确的模式?

C 为什么这段代码创建了正确的模式?,c,loops,C,Loops,我最近开始学习C编程语言,因此开始解决黑客银行的问题。其中一个问题如下: 在这个问题中,您需要打印以下表单的模式,其中包含从1到n的数字 4 4 4 4 4 4 4 4 3 3 3 3 3 4 4 3 2 2 2 3 4 4 3 2 1 2 3 4 4 3 2 2 2 3 4 4 3 3 3 3 3 4 4 4 4 4 4 4 4 : #包括 #包括 #包括 #包括 #定义最大值(x,y)((x)>(y)?x:y) int main() { int n;

我最近开始学习C编程语言,因此开始解决黑客银行的问题。其中一个问题如下:

在这个问题中,您需要打印以下表单的模式,其中包含从1到
n
的数字

4 4 4 4 4 4 4  
4 3 3 3 3 3 4   
4 3 2 2 2 3 4   
4 3 2 1 2 3 4   
4 3 2 2 2 3 4   
4 3 3 3 3 3 4   
4 4 4 4 4 4 4  
:

#包括
#包括
#包括
#包括
#定义最大值(x,y)((x)>(y)?x:y)
int main()
{
int n;
scanf(“%d”和“&n”);
int len=n*2-1;
对于(int i=0;i
我已经列出了
2n-1 x 2n-1
矩阵的所有索引,并试图观察它们之间的关系。但是我不能建立
max(abs(n-I-1)+1,abs(n-j-1)+1)
的关系


我只是不明白
max(abs(n-I-1)+1,abs(n-j-1)+1)
,为什么这行代码能得到矩阵中每个元素的正确值?

拿一张纸、笔或铅笔,手动执行代码。你会明白的。当你学习编程时,试着用这种方法分析程序。它将为您提供远远超过数千条的internet postsI手动运行代码,并且max(abs(n-i-1)+1,abs(n-j-1)+1)是否真的给出了每个矩阵的正确元素。但是从一开始我就不知道如何表达这个max(abs(n-i-1)+1,abs(n-j-1)+1)。伙计们,我终于明白了。