- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
常用算法-piazza
第八章常用算法
郎大鹏
第八章常用算法
8.1 格式控制类
8.2 排序和查找
8.3 一些常见编程算法
8.4 应用题型
8.5 其它常用数学方法
8.6 随机数分析
8.7 习题
第八章常用算法
8.1 格式控制类
8.2 排序和查找
8.3 一些常见编程算法
8.4 应用题型
8.5 其它常用数学方法
8.6 随机数分析
8.7 习题
8.1 格式控制类
例8.1 输入一个整数行数,根据输入的行数输出杨辉三角。
算法分析:杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三
角形中的一种几何排列。杨辉三角最本质的特征是:它的两条斜边都是由数字1
组成的,而其余的数则是等于它肩上的两个数之和,根据上述分析,可设计算
法如下。
(1)定义一个二维数组a[N]用于存储数据,N为宏定义;
(2)输入一个整数,用于记录需要计算的行数;
(3)将数组第一列的所有元素置1,即a[i][0]=1,i为数组行下标;
(4)从第二行第二列开始,每个数字等于它肩上两个数字之和;
(5)控制打印格式,打印输出
源程序:
#include stdio.h
#define N 15 /*宏定义,用来表示二维数组下标范围*/
void main()
{ int i,j,n=0,a[N][N]={0}; /*定义变量和二维数组,并将数组进行初始化*/
printf(please enter lines (1N=15):); /*输入杨辉三角形的行数*/
scanf(%d,n);
if (n1 || n15)
printf(error!);/*如果输入非法,进行提示,程序结束*/
else
{ for(i=0;in;i++) /*注意循环变量范围*/
a[i][0]=1; /*利用一重循环将二维数组第一列置1 */
for(i=1;in;i++)
for(j=1;j=i;j++) /*循环变量j 随i进行变化*/
a[i][j]=a[i-1][j-1]+a[i-1][j];
/*每个数字等于它肩上两个数字之和*/
for(i=0;in;i++) /*利用二重循环输出结果*/
{for(j=0;j=i;j++)
printf(%5d,a[i][j]);
printf(\n);
}
}
}
8.1 格式控制类
例8.2 输出九九乘法表。
算法分析:该程序主要考核学生如何控制屏幕输出格式,使用格式控制符实现
。可设计算法如下。
定义一个9行9列二维数组用于存储数据;
利用二重循环输出结果,在输出效果方面,使用c语言的格式控制符控制输出效
果。
源程序:
#include stdio.h
void main()
{
int a[9][9],i,j; /*定义存储数据的数组*/
for(i=0;i9;i++) /*计算数组个元素的值*/
for(j=0;j9;j++)
a[i][j]=(i+1)*(j+1);
for(i=0;i9;i++) /*输出*/
{
for(j=0
文档评论(0)