| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3970 人关注过本帖, 1 人收藏
标题:求教杨辉三角程序
只看楼主 加入收藏
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(8楼)杨辉三角形
回复8楼的疑问:

/*杨辉三角形一例*/
#include<stdio.h>
main()
{ int a[13]={1,0},i,n; //13是指杨辉三角形的“高”或“底边元素个数”
for(n=0; n<=12; n++) //循环变量n从0变到12对应第1行至第13行
{ //循环体负责产生杨辉三角形第n+1行
printf("%*c",38-3*n,' ');//产生若干个空格,数量逐行递减3,这样才能“等腰”
for(i=n; i>=0; i--)
{ a[i]+=a[i-1]; //这就是a[i]=a[i]+a[i-1]是由杨辉三角形的特点决定的
printf("%-6d",a[i]); //每个数据占6格,同样为了“等腰”
}
printf("\n"); //有了回车才形成“行”
}
}

//加注释固然好懂了,但品不出味道来。只有自己细嚼慢咽才能真正消化吸收


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-08 03:33
龙轩v亚风
Rank: 1
等 级:新手上路
威 望:1
帖 子:1073
专家分:0
注 册:2006-4-20
收藏
得分:0 
谢谢 五角星  本人向你 努力学习中...

狂风扫落叶,扫把都失业!拍卖QQ:559372
2006-06-09 10:59
Arcsacy
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-6-2
收藏
得分:0 
以下是引用–★–在2006-6-8 3:33:00的发言:
回复8楼的疑问:

/*杨辉三角形一例*/
#include<stdio.h>
main()
{  int a[13]={1,0},i,n;  //13是指杨辉三角形的“高”或“底边元素个数”
   for(n=0; n<=12; n++) //循环变量n从0变到12对应第1行至第13行
   {  //循环体负责产生杨辉三角形第n+1行
      printf("%*c",38-3*n,' ');//产生若干个空格,数量逐行递减3,这样才能“等腰”
      for(i=n; i>=0; i--)
      {  a[i]+=a[i-1]; //这就是a[i]=a[i]+a[i-1]是由杨辉三角形的特点决定的
         printf("%-6d",a[i]); //每个数据占6格,同样为了“等腰”
      }
      printf("\n"); //有了回车才形成“行”
   }
}

//加注释固然好懂了,但品不出味道来。只有自己细嚼慢咽才能真正消化吸收


2006-06-09 12:19
Arcsacy
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-6-2
收藏
得分:0 

不错的方法
而且很新颖。厉害

–★–:
刚刚我删了你上午发的“火帖”,但愿不会忌恨于我。理解万岁!


2006-06-09 12:20
金为床兮银为椅
Rank: 1
等 级:新手上路
帖 子:183
专家分:0
注 册:2006-3-20
收藏
得分:0 

今天闲极无聊,我也来玩玩。

void main()
{
const int m = 10;//这两个自己安排 n = 1 + 2 * ,m
const int n = 21;
int i;
int j;
int a[m][n];
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
a[i][j] = 32;
}
a[i][n / 2 + 1 - i] = 1;
a[i][n / 2 + 1 + i] = 1;
}
for (i = 2; i < m; i++)
{
for (j = n / 2 + 1 - i + 2; j <= n / 2 + 1 + i - 2; j = j + 2)
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j + 1];
}
}
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
if (a[i][j] == 32)
{
printf("%4c", char(a[i][j]));
}
else
{
printf("%4d", a[i][j]);
}
}
printf("\n");
}
}


努力学习C、C++、LINUX、ORACLE、ENGLISH,累死为止。
2006-06-09 15:48
金为床兮银为椅
Rank: 1
等 级:新手上路
帖 子:183
专家分:0
注 册:2006-3-20
收藏
得分:0 

唉,笨死,应该可以合并到一起的。等我一会。


努力学习C、C++、LINUX、ORACLE、ENGLISH,累死为止。
2006-06-09 15:53
ZhouJuan
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-6-9
收藏
得分:0 
课本上不就有吗?

2006-06-09 15:54
金为床兮银为椅
Rank: 1
等 级:新手上路
帖 子:183
专家分:0
注 册:2006-3-20
收藏
得分:0 
大家看看还有什么地方可以精简的,谢谢。
void main()
{
const int m = 10;
const int n = 21;
int i;
int j;
int a[m][n];
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
a[i][j] = 32;
}
a[i][n / 2 + 1 - i] = 1;
a[i][n / 2 + 1 + i] = 1;

if (i >= 2)
{
for (j = n / 2 + 1 - i + 2; j <= n / 2 + 1 + i - 2; j = j + 2)
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j + 1];
}
}




for (j = 0; j < n; j++)
{
if (a[i][j] == 32)
{
printf("%4c", char(a[i][j]));
}
else
{
printf("%4d", a[i][j]);
}
}
printf("\n");
}

}

努力学习C、C++、LINUX、ORACLE、ENGLISH,累死为止。
2006-06-09 15:58
龙轩v亚风
Rank: 1
等 级:新手上路
威 望:1
帖 子:1073
专家分:0
注 册:2006-4-20
收藏
得分:0 
晕 我怎么这个也不能运行的了 说有7个错误 从 int a[m][n];
开始

狂风扫落叶,扫把都失业!拍卖QQ:559372
2006-06-10 18:57
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
以下是引用龙轩v亚风在2006-6-10 18:57:40的发言:
晕 我怎么这个也不能运行的了 说有7个错误 从 int a[m][n];开始

不要急着晕:
1。扩展名取cpp,不要取c(如果用VC编译)
2。最开始补上#include<stdio.h>
3。如果用TC 2.0则将
const int m = 10;
const int n = 21;
改为:
#define m 10
#define n 21


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-11 05:54
快速回复:求教杨辉三角程序
数据加载中...
 
   



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

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