| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1205 人关注过本帖
标题:我在做数组的时候遇到一个问题
只看楼主 加入收藏
lichenxi
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-9-7
收藏
 问题点数:0 回复次数:15 
我在做数组的时候遇到一个问题
我在做数组的时候遇到一个问题:
有个题根本不知道思路:要求输出这个形状=>


1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
.........

各位大哥大姐,指导下小弟把!
搜索更多相关主题的帖子: 大哥 
2006-09-10 00:03
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
得分:0 


这个是杨辉三角形,规律好像高中学过的

#include<stdio.h>
int main()
{ int i,j,a[7][7];
for(i=1;i<7;i++)
{ a[i][i]=1;
a[i][1]=1;
}
for(i=3;i<7;i++)
for(j=2;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=1;i<7;i++)
{ for(j=1;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
return 0;
}


只剩一年了………… 够了!
2006-09-10 00:53
C之Itachi
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-7-16
收藏
得分:0 
a[i][j]=a[i-1][j-1]+a[i-1][j]

2006-09-10 01:16
宇釉
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-9-10
收藏
得分:0 
最简单 用printf("")!
哈哈 开个玩笑
2006-09-10 09:36
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
两种方法:
一种是3 楼的a[i][j]=a[i-1][j-1]+a[i-1][j] 两肩之和
一种是排列组合对每一行(i),每一列(j)的数为:从i个相同物品中取出j个的取法.即C(i,j);

倚天照海花无数,流水高山心自知。
2006-09-10 09:53
小林
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-9-7
收藏
得分:0 
/* 杨晖三角 */
#include<stdio.h>
main()
{
int n,i,j,a[100][100];
printf("row ?");
scanf("%d",&n);
for(i=0;i<=n-1;i++)
{
for(j=0;j<=i;j++)
{
if(i==j)
{
a[i][j]=1; /*行列相同时的值是1*/
printf("\n");
}
if(j==0)
a[i][j]=1; /*第一列是1*/
else
a[i][j]=a[i-1][j-1]+a[i-1][j]; /*这个是核心,除了第一列和行列相同时的元素外,其它元素的规律*/
}
}
for(i=0;i<=n-1;i++) /*输出杨辉三角*/
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
getch();
}
这是小弟编的程序,不是很好,只是提供一些思路!!

2006-09-10 10:55
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

/*第一种已经给出了,我就给出第二种吧*/

#include<stdio.h>
#define N 50
long C(int n,int m)
{
int i;
long sum=1;

if(n==0||m==0)
{
return(1);
}
for(i=0;i<m;i++)
{
sum=sum*(n-i);
}
for(i=0;i<m;i++)
{
sum=sum/(m-i);
}
return(sum);
}

int main()
{
int i,j,n;

printf("输入杨辉三角的行数,不超过%d:",N);
scanf("%d",&n);
printf("打印%d行的杨辉三角\n",n);
for(i=0;i<=n;i++)
{
for(j=0;j<=i;j++)
{
printf("%-5ld",C(i,j));
}
printf("\n");
}
return(0);
}


倚天照海花无数,流水高山心自知。
2006-09-10 12:29
alfredsue
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-10
收藏
得分:0 
其实这种问题自己仔细琢磨一下是很好的,真的比看别人的程序有收获多了.

2006-09-10 12:36
lichenxi
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-9-7
收藏
得分:0 
谢谢各位了!小弟十分感激!但是 return(0);我还没学,只用数组的,好好审阅一下!


努力的天才也是存在的!
2006-09-10 14:58
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
这里的return(0)表示正常结束.

倚天照海花无数,流水高山心自知。
2006-09-10 16:10
快速回复:我在做数组的时候遇到一个问题
数据加载中...
 
   



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

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