用函数打印杨辉三角

本文介绍了如何使用C语言编写程序来打印杨辉三角。通过解析关键函数fun1(int row, int col),理解其递归计算杨辉三角数字的逻辑。在main()函数中,详细解释了控制换行、输出空格和数字的过程,强调了递归调用的注意事项。" 132925673,19673916,使用Prim算法解决旅行商问题,"['编程', 'python', '算法']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天试着用函数打印杨辉三角,虽然出现了几个问题,但是都被我解决了!
首先上源程序:
#include “stdio.h”

int fun1(int row,int col)
{
if(rowcol||col1)
return 1;
return(fun1(row-1,col-1)+fun1(row-1,col));
}
int main()
{
int n;
int i,j;
printf(“请输入要打印的杨辉三角的行数”);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=(n-i)*4;j++)
{
printf(" “);
}
for(j=1;j<=i;j++)
{
printf(”%4d",fun1(i,j));
printf(" “);
}
printf(”\n");
}
printf("\n");
return 0;
}
这个程序是完全正确的,不过我当时做的时候有几个问题,我在这里具体再说一遍:
1:fun1(int row,int col)是啥意思?
这个函数其实是打印杨辉三角的核心,我们知道杨辉三角每行的数字左右对称,并且起始的数字都是1,所以我们得出这样的语句:
if(rowcol||col1)
return 1;
我们又发现杨辉三角每个数等于其上方两数之和,所以我们有了这样的语句:
return(fun1(row-1,col-1)+fun1(row-1,col));
2:整个main()函数部分看起开是中规中矩的,先控制换行,然后输出空格,再输出数字,不过我感觉在输出数字方面如果不注意,思维不清晰的话很容易出错:
for(j=1;j<=i;j++)
{
printf

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值