杨辉三角c语言编程报告,C语言打印杨辉三角示例汇总
杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来。
在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和。这就是我们用C语言写杨辉三角的关键之一。在高中的时候我们又知道,杨辉三角的任意一行都是的二项式系数,n为行数减1。也就是说任何一个数等于这个是高中的组合数。n代表行数减1,不代表列数减1。如:第五行的第三个数就为=6。
现在我们按第一种思路来写:先定义一个二维数组:a[N][N],略大于要打印的行数。再令两边的数为1,即当每行的第一个数和最后一个数为1。a[i][0]=a[i][i-1]=1,n为行数。除两边的数外,任何一个数为上两顶数之和,即a[i][j]=a[i-1][j-1]+a[i-1][j]。最后输出杨辉三角。代码如下:
#include
#define N 14
void main()
{
int i,j,k,n=0,a[N][N]; /*定义二维数组a[14][14]*/
while(n<=0||n>=13){ /*控制打印的行数不要太大,过大会造成显示不规范*/
printf("请输入要打印的行数:");
scanf("%d",&n);
}
printf("%d行杨辉三角如下:\n",n);
for(i=1;i<=n;i++)
a[i][1] = a[i][i] = 1; /*两边的数令它为1,因为现在循环从1开始,就认为a[i][1]为第一个数*/
for(i=3;i<=n;i++)
for(j=2;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j]; /*除两边的数外都等于上两顶数之和*/
for(i=1;i<=n;i++){
for(k=1;k<=n-i;k++)
printf(" "); /*这一行主要是在输出数之前打上空格占位,让输出的数更美观*/
for(j=1;j<=i;j++) /*j<=i的原因是不输出其它的数,只输出我们想要的数*/
printf("%6d",a[i][j]);
printf("\n"); /*当一行输出完以后换行继续下一行的输出*/
}
printf("\n");
}
运行结果:
请输入要打印的行数:10
10行杨辉三角如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
上面的这一种方法我们用到了二维数组,下面的这一方法我们将用到自定义函数。
在高中我们知道,杨辉三角中的任何一个数都等于一个组合数,现在我们用这一公式来做。首先,此方法代码如下:
#include
/*
* 定义阶乘,在这里可能会想。为什么要用float,当我试第一次的时候,
* 如果用int的话,那么在打印行数多了以后就会出错。
* 这是因为阶乘的数比较大,如果用int就不够用了。下同
*/
float J(int i){
int j;
float k=1;
for(j=1;j<=i;j++)
k=k*j;
return(k);
}
float C(int i,int j){ /*定义组合数*/
float k;
k=J(j)/(J(i)*J(j-i));
return(k);
}
void main(){
int i=0,n; /*打印杨辉三角*/
while(i<=0||i>16){
printf("请输入要打印的行数:");
scanf("%d",&i);
}
printf("%d行杨辉三角如下:\n",i);
for(j=0;j
for(k=1;k<=(i-j);k++)
printf(" ");
for(n=0;n<=j;n++)
printf("%4.0f",C(n,j));
printf("\n");
}
printf("\n\n");
}
运行结果:
请输入要打印的行数:10
10行杨辉三角如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
这个方法主要就是要知道组合数的表示。还有如果自定义函数。但是这种方法产生的数据比较大,不建议用这种方法。
总结
以上是编程之家为你收集整理的C语言打印杨辉三角示例汇总全部内容,希望文章能够帮你解决C语言打印杨辉三角示例汇总所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!
杨辉三角c语言编程报告,C语言打印杨辉三角示例汇总相关推荐
- c语言中求匀加速直线速度,速求C语言编程题 c语言编程速度求
导航:网站首页 > 速求C语言编程题 c语言编程速度求 速求C语言编程题 c语言编程速度求 相关问题: 匿名网友: #include //计算行元素和 void CountRow(int a[] ...
- C语言编程>第一周 ⑥ 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例题:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153等于 ...
- c语言编程心得,C语言编程心得
记录这些是为了日后自己想查阅以前经验的方便,同时若能给其他网友带来一些帮助,就更好了~ C语言,自己经常遇到的问题: 1.段错误 段错误一般是由于访问了不存在的地址造成的,具体的原因有文件路径不存在, ...
- [C语言] [典例详解] 打印杨辉三角(找规律简单实现)
题目>>> 用C语言打印杨辉三角.杨辉三角参考图如下: 分析>>> 于是不清楚杨辉三角的同学们可以上网查查,可以立刻知道它的相关推理归纳和公式总结.它的简介如下: ...
- c语言实验设计报告,c语言实验设计报告计科学号.doc
c语言实验设计报告计科学号.doc C语言程序设计课程实验报告系 院 信息工程学院 班 级 计科1101 学 号 111404107 姓 名 杜舒静 完成日期 2012年2-6月 指导教师 徐永安 二 ...
- c语言实验设计报告,C语言实验设计报告.doc
C语言实验设计报告 <C程序设计>实训及课程设计项目报告 教学信息管理系统 班 级:软件4班 制 作 者:刘宏利指 导 教 师杨文姬开 发 时 间2010年1月10日 一.系统简介 本系统 ...
- 聊城大学c语言实验报告,c语言程序设计(包云)c第1章概述.ppt
c语言程序设计(包云)c第1章概述.ppt C语言程序设计,讲授包云 单位聊城大学计算机学院,第1章 C语言概述,3,主要内容,1.1 什么是计算机程序 1.2 什么是计算机语言 1.3 C语言的发展 ...
- 管理c语言程序设计报告,c语言程序设计报告图书管理系统
<c语言程序设计报告图书管理系统>由会员分享,可在线阅读,更多相关<c语言程序设计报告图书管理系统(11页珍藏版)>请在人人文库网上搜索. 1.中国地质大学本科生课程论文封面课 ...
- c语言入门报告,c语言学习心得报告
c语言学习心得报告 C 语言学习心得报告 看了一段时间的<C和指针> ,这样看的效果不是很好,看着书本当时是懂 了,有点恍然大悟的感觉,但是发现并不能真正的把理解的内容加入到自己程 序当中 ...
最新文章
- matlab rank函数报错,Matlab signrank函数(Wilcoxon signed rank test)中的矛盾结果[重复]
- 悠悠二十载,Nginx创始人Igor宣布离职
- 【opus源码分析】【互相关函数源码分析】xcorr_kernal_c
- redis做分布式锁可能不那么简单
- 品牌管理案例——添加新品牌 删除品牌 根据条件筛选品牌
- C++文件流:myfstream,fstream,文件读写,随机文件读写【C++文件流】(59)
- git rebase --skip_可冒充git大神的git tips
- 阿里开发规范_阿里开发强制要求的11条SQL编写规范
- Oracs Beta1 非 VPC版出来了
- python min函数时间复杂度是指_python中的内置函数max()和min()及mas()函数的高级用法...
- Atitit 算法之道 之压缩算法 attilax总结 1. 压缩算法与压缩格式区别	1 2. 压缩算法于格式	1 2.1. H264 mpg jpg MP3	2 2.2. Zip rar 。L
- C3P0连接池的配置和使用
- DIY一个正弦表计算器,用于单片机查表生成正弦波
- matlab中grid相关知识
- 基金定投应该什么时候终止?
- 百度图片批量下载助手
- 头豹研究院发布《2022年中国数据库产品策略解析报告》
- 数据分析实践——面试官:如果DAU下降如何归因?(以抖音为例)
- Java 基础知识面试题(2021最新版)
- 小家电品牌私域增长解决方案来了
热门文章
- 树莓派之Kali linux 系统安装及基础配置
- tcp_keepalive的设置
- php%3ca%3e传值,开服openAPI文档
- 基于JAVA校园生活信息服务平台计算机毕业设计源码+系统+数据库+lw文档+部署
- java parselong_java中的parseLong()
- 从头开始学MySQL--------内连接、左连接、右连接(4)
- ShaderWeaver卡片制作-第三节
- 开启Hyper-v,使用蓝叠模拟器进行抓包的曲折经历
- UI设计新手怎么入门?如何制作特色作品集
- Pixhawk无人机扩展教程(4)---使用Dronekit编写一个控制程序