c - 用 C 打印一个图案

标签 c

我希望用 C 语言打印一个模式,如下所示:

1
2  6
3  7  10
4  8  11  13
5  9  12  14  15

目前我有这个:

int main()
{
    int i,j;
    for(i=1;i<=5;i++)
    {   
        for(j=1;j<=5;j++)
        {   
            if(i>=j)
            {
                printf(" %d ",j+i-1);
            }
        }
        printf("\n");
    }
    printf("\n");
}

我没有得到想要的结果。请有人帮忙

最佳答案

基本上,如果您分析每行数字之间的差异:

    1  
    2  6  
    3  7  10  
    4  8  11  13  
    5  9  12  14  15  
       ^   ^  ^   ^
diff   4   3  2   1 

然后对于每一列(除了等于行的第一列),公式为:

      col_value = val(row, col-1) + (5-col))

例如最后一行:

    5  9  12  14  15  

    9 = 5 + (5-1)
    12 = 9 + (5-2)
    14 = 12 + (5-3)
    15 = 14 + (5-4)

代码:

#include<stdio.h>
int main()
{
  int i,j,k;
  for(i=1;i<=5;i++)
  {
    k = i;
    for(j=1;j<=i;j++)
    {
      printf("%d ", k);
      k += 5-j;
    }
    printf("\n");
  }
  return 0;
}

关于c - 用 C 打印一个图案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32778816/

相关文章:

c - 在 C 中对整数数组求和

c - 错误: expected ')' before '*' token

c - 数组值不更新

c - C++中的private成员变量如何在C中模拟?

c - libcurl curl/curl.h 没有这样的文件或目录 Win xp 32 MinGW

c - 在 C 中实现 Miller-Rabin

Mac 上未声明 CLK_TCK

c - C语言中如何使用指向指针的指针分配内存

c - 是否有 Azure IOT Central C API?

c++ - fopen 和 fwrite 从多个线程到同一个文件