lucky_789 发表于 2015-1-16 20:22:31

c语言实现空心、实心棱形打印的程序

本帖最后由 lucky_789 于 2015-1-16 20:54 编辑

main()
{
      int i,j,k,m,n;
      
      printf( "\nEnter length of a side: ");
      scanf("%d", &n);
      printf("\n");

      k = n*2-1;      //实际矩阵边长
      for (i = 0; i < k; i++)
      {
                m = (i < n) ? i : k-i-1; //距中线对称距离
                for (j = 0; j < k; j++)
                {
                        if (j == n-m-1 || j == n+m-1) /* 这句改为if (j >= n-m-1 && j <= n+m-1)即可打印实心棱形 */
                        {
                              printf("*");
                        }
                        else
                        {
                              printf(" ");
                        }
                }
                printf("\n");
      }
}

回忆无法挽留 发表于 2015-1-16 23:35:29

正在学习C有点难

pk196371 发表于 2015-1-19 17:36:01

以前学C的时候。有做过这种题目。

漂摆 发表于 2015-2-8 13:53:26

大神就是大神这代码写的简洁、高效,刚学习C按照视频的思路写的,卡了两天了,实现单个菱形没问题,但是还没实现任意菱形的输出,大部分实现了,卡在最后一条边的实现上了,想偷点代码没想到看到这么简洁的代码,等调完了这个思路一定试试这种~

lucky_789 发表于 2015-2-8 15:38:43

漂摆 发表于 2015-2-8 13:53
大神就是大神这代码写的简洁、高效,刚学习C按照视频的思路写的,卡了两天了,实现单个菱形没问题,但是还 ...

我也是在跟着Nisy学习c语言。这一题的思路不要纠结于哪条边怎么画,而是按矩阵扫描落到关键点就打印*,否则打印空格。
页: [1]
查看完整版本: c语言实现空心、实心棱形打印的程序