标题:再求教一道图形题
只看楼主
maxkaoyan
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-4-22
 问题点数:0 回复次数:6 
再求教一道图形题

2.编写程序,输出如图所示高度为n的图形。

1 3 6 10 15 21

2 5 9 14 20

4 8 13 19

7 12 18

11 17 16 n=6时的数字倒三角

[此贴子已经被作者于2005-5-18 9:35:49编辑过]

搜索更多相关主题的帖子: 图形 数字 三角 高度 
2005-05-18 09:34
maxkaoyan
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-4-22
得分:0 

2005-05-19 09:35
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
得分:0 

/*编写程序,输出如图所示高度为n的图形。

n=6时的数字倒三角

1 3 6 10 15 21 2 5 9 14 20 4 8 13 19 7 12 18 11 17 16

*/

#include <stdio.h>

int matrix() { int i; int j; int counter; int count; int arry[6][6]; counter=1; count=0; for(i=0;i<6;i++) for(j=0;j<6;j++) arry[i][j]=0; do { for(i=count;i>=0;i--) { for(j=0;j<=count;j++) { if(i+j>count) { break; } else if(i+j==count) { arry[i][j]=counter; ++counter; } } } ++count; if(count==6) goto Label; }while(1);

Label: for(i=0;i<6;i++) { for(j=0;j<6-i;j++) printf("%5d",arry[i][j]); printf("\n\n\n"); } return 0; }

int main() { //int line; //printf("please enter the line:\n"); //scanf("%d",&line); matrix(); return 0; }


Every thing is possible.
2005-05-19 14:30
陆哈哈
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2005-4-17
得分:0 
我的做法是:
main()
{
 int k=1,a[6][6],m,n,i,j;
 for(m=0;m&lt;=5;m++)
   { for(n=m;n&gt;=0;n--)
     { i=n;j=m-n;
      a[i][j]=k++;
     }
   }
 for(i=0;i&lt;=5;i++)
  {
   for(j=0;j&lt;6-i;j++)printf("%-3d",a[i][j]);
   printf("\n");
  }
}

还望高手们多多指教!!
2005-05-19 17:32
147043838
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-5-15
得分:0 
倒  太简单了吧!
都看不懂!!
2005-05-20 20:05
maxkaoyan
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-4-22
得分:0 
真是太精彩了 谢拉!

2005-05-21 09:33
kaikai
Rank: 1
等 级:新手上路
帖 子:236
专家分:0
注 册:2005-1-7
得分:0 

我就喜欢凑热闹:给出2个方法,前一个还容易看懂一些,后一个故意混淆了一下。 #include <stdio.h>

int foo(int i, int j) { int t = i + j; return t * (t + 1) / 2 + i + 1; }

int main() { int i, j, n, t; while(scanf("%d", &n) == 1 && n > 0) { /* general solution: for(i = n; i > 0; i--) { printf("%d", foo(0, n - i)); for(j = 1; j < i; j++) printf(" %d", foo(j, n - i)); printf("\n"); } /*/ // another solution: for(t = n, i = n * (n + 1) / 2; i > 0; i--) { printf("%d", foo((t + 1) * t / 2 - i, n - t)); printf(t * (t - 1) / 2 == i - 1 ? t--, "\n" : " "); } //*/ } return 0; }


Have you visit acm.tongji. lately?
2005-05-21 15:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-18558-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.147947 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved