2个回答
展开全部
如果只是输出不保存的话,可以这样实现,不写主函数了:
void printyanghui(int n) // 打印n行杨辉三角
{
int i, j;
for(i = 0; i < n ; i++) {
for(j = 0; j < n - i; j ++) printf(" ");
for(j = 0; j <= i; j ++) {
printf("%d ", c(i, j));
printf("\n");
}
}
int c(int i, int j)
{
int m, value;
if(j > (i+1) / 2)
j = i-j;
value = 1;
for(m = 0; m < j; m ++)
value = value * (i-m) / (m+1);
return value;
}
void printyanghui(int n) // 打印n行杨辉三角
{
int i, j;
for(i = 0; i < n ; i++) {
for(j = 0; j < n - i; j ++) printf(" ");
for(j = 0; j <= i; j ++) {
printf("%d ", c(i, j));
printf("\n");
}
}
int c(int i, int j)
{
int m, value;
if(j > (i+1) / 2)
j = i-j;
value = 1;
for(m = 0; m < j; m ++)
value = value * (i-m) / (m+1);
return value;
}
2014-04-11
展开全部
#include <stdio.h>
main()
{
int i,j,a[10][10]; /*10行10列的杨辉三角*/
for(i=0;i<10;i++) /*先赋值两边*/
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<10;i++) /* 计算中间的数值 */
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++) /* 输出部分 */
{
for(j=0;j<i+1;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
main()
{
int i,j,a[10][10]; /*10行10列的杨辉三角*/
for(i=0;i<10;i++) /*先赋值两边*/
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<10;i++) /* 计算中间的数值 */
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++) /* 输出部分 */
{
for(j=0;j<i+1;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询