1、 课课 程程 设设 计计 报报 告告 学院、系: 专业名称: 计算机科学与技术 课程设计科目 C 语言程序课程设计 所在班级: 学生学号: 学生姓名: 指导教师: 完成时间: 2011 年 3 月-5 月 (课程设计报告正文部分) C 语言程序课程设计案例:输出杨辉三角 一、设计任务与目标 (1) 输入正整数 n,输出杨辉三角形的前 n行,1n20。要求至少给出四种解 法:只使用二维数组,只使用一维数组,不使用任何数组,使用递归。(2) 输入 正整数 m, 若 m 在杨辉三角形中存在,输出所在位置的行列编号,若不存在,输 出“No” 。 二、方案设计与论证 使用一维数组输出杨辉三角,使用二维数
2、组输出杨辉三角,使用数学公式输出 杨辉三角,使用递归输出杨辉三角。在输出的杨辉三角中查找输入正整数所在位 置的行列编号。 三、程序框图或流程图,程序清单与调用关系 四、全部源程序清单 #include #define N 20 void main() int i,j,num; int aNN; printf(“n“); scanf(“%d“, for(i=0;inum;i+) ai0=1; aii=1; for(i=2;inum;i+) for(j=1;ji;j+) aij=ai-1j-1+ai-1j; printf(“Yang Hui Trianglen“); for(i=0;inum;i+
3、) for(j=0;j=i;j+) printf(“%-5d“,aij); printf(“n“); /二维 #include void main() int i,j,n=0,a17=1,b17; while(n16) printf(“请输入杨辉三角形的行数:“); scanf(“%d“, for(i=0;in;i+) b0=a0; for(j=1;j=i;j+) bj=aj-1+aj; /*每个数是上面两数之和*/ for(j=0;j=i;j+) /*输出杨辉三角*/ aj=bj; /*把算得的新行赋给 a,用于打印和下一次计算*/ printf(“%5d“,aj); printf(“n“); /一维 #include void main() long i,j,n,k; scanf(“%ld“, for(i=1;i=n;i+) k=1; for(j=1;ji;j+) printf(“%ld “,k); k=k*(i-j)/j; printf(“1n“); /公式 #include int Try(int n, int k) if (k = 0|k =