本实例要求从键盘输入任意整数 n,通过程序运行输出对应高度为 n 的等腰三角形。
算法思想
① 设计以高度 n 为参数的一个函数,函数返回值为空,在函数体中实现等腰三角形的打印;图形的最终打印需要利用二层循环设计实现。
② 图形共输出 n 行,外循环变量 i 表示 n 行的输出,循环变量的变化范围为 0~(n—1)。
③ 循环变量 j 表示每一行的“*”号输出。由于每一行的输出不同,第 j 行输出空格的个数为 (n—i),第 j 行输出“*”号的个数为(2*i+1)。控制“*”号输出的内循环变量 j 的变化范围为 0~(2*i)。
④ 在主函数中输入 n 作为实参,调用定义函数,打印等腰三角形。
程序代码
#include <stdio.h>
int trangle(int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<=n-i;j++)
putchar(' ');
for(j=0;j<=2*i;j++)
putchar('*');
putchar('\n');
}
return 0;
}
int main()
{
int n;
printf("Enter n:");
scanf("%d",&n);
printf("\n");
trangle(n);
return 0;
}
调试运行结果
当 n 取值为 8 时,打印出的等腰三角形如下所示:
Enter n:8
*
***
*****
*******
*********
***********
*************
***************
当 n 取值为 20 时,打印出的等腰三角形如下所示:
Enter n:20
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*********************
***********************
*************************
***************************
*****************************
*******************************
*********************************
***********************************
*************************************
***************************************
PSP 各个阶段 |
预估时间 (分钟) |
实际记录 (分钟) |
计划: |
30 |
30 |
明确需求和其他因素,估计以下的各个任务需要多少时间 |
30 |
30 |
开发 |
220 |
250 |
. 需求分析(包括学习新技术、新工具的时间) |
20 |
30 |
. 生成设计文档(整体框架的设计,各模块的接口,用时序图,快速原型等方法) |
25 |
30 |
. 设计复审 (和同事审核设计文档,或者自己复审) |
20 |
20 |
.代码规范(为目前的开发制定或选择合适的规范) |
20 |
20 |
.具体设计 |
40 |
40 |
.具体编码 |
40 |
50 |
.代码复审 |
30 |
30 |
.测试(自我测试,修改代码,提交修改) |
25 |
30 |
报告 |
30 |
30 |
· 测试报告 |
5 |
5 |
·计算工作量 |
5 |
5 |
·事后总结,并提出改进计划 |
20 |
20 |
总共花费的时间(分钟) |
280 |
310 |