1.实验题目
(1004)拉里今年毕业,终于找到了一份工作。他赚了很多钱,但不知怎的似乎从来没有足够的钱。拉里决定,他需要抓住自己的财务组合,解决他的融资问题。第一步是弄清楚他的钱出了什么事。拉里有他的银行账户报表,想看看他有多少钱。帮助拉里编写一个程序,从过去十二个月的每一个月计算他的结账余额,计算他的平均账户余额。
输入
输入将是十二行。每一行将包含他在某个月的银行账户的余额。每个数字都是正数,并且精确到美分。美元符号($)不会出现在数字中。
输出
产出将是一个单一的数字,平均余额为十二个月的平均数。它将被舍入到最近的一个便士,紧接着是一个美元符号,后面跟着一行符号。输出中没有其他空格或字符。
【输入范例】100.00
489.12
12454.12
1234.10
823.05
109.20
5.27
1542.25
839.18
83.99
1295.01
1.75
【输出范例】$1581.42
2.需求分析
本演示程序用VC++6.0编写,求出12个数的平均数。
① 输入的形式和输入值的范围:输入将是十二行。每一行将包含他在某个月的银行账户的余额。每个数字都是正数,并且精确到美分。美元符号($)不会出现在数字中。
② 输出的形式:产出将是一个单一的数字,平均余额为十二个月的平均数。它将被舍入到最近的一个便士,紧接着是一个美元符号,后面跟着一行符号。输出中没有其他空格或字符。
③ 程序所能达到的功能:求出12个数的平均数。
④ 测试数据:
【输入范例】100.00
489.12
12454.12
1234.10
823.05
109.20
5.27
1542.25
839.18
83.99
1295.01
1.75
【输出范例】$1581.42
3.概要设计
1)为了实现上述程序功能,需要定义一个数组要接收12个数:
#define N 12
int main()
{
double m=0,l;
double s[N];
2)本程序包含1个函数:
主函数main()
4.详细设计
1)需要定义一个数组要接收12个数:
#define N 12
int main()
{
double m=0,l;
double s[N];
2) 循环输入12个数
for(i=0;i<N;i++)
{scanf("%lf",&s[i]);
m=m+s[i];}
3) l接收12个数的平均数
l=m/N;
具体代码:
#include<stdio.h>
#define N 12 //N为12,用于数组和循环
int main()
{
double m=0,l;
double s[N];
int i;
for(i=0;i<N;i++)
{scanf("%lf\n",&s[i]); //一行输入一个数
m=m+s[i];} //m为12个数的和
l=m/N; //l为12个数的平均数
printf("$"); //先输出$
printf("%.2lf",l); //$后边加上平均数即符合输出要求
return 0;
}
5.调试分析
#include<stdio.h>
#define N 12
int main()
{
double m=0,l;
double s[N];
int i;
for(i=0;i<N;i++)
{scanf("%lf\n",&s[i]); //时间复杂度为T(n)=O(1),空间复杂度为S(n)=O(1)
m=m+s[i];}
l=m/N;
printf("$");
printf("%.2lf",l);
return 0;
}
6.使用说明
程序名为LinkList.exe,运行环境为DOS。程序执行后显示
每一行都输入一个精确到美分的正数,输入12行,点击回车,即输出平均数。
7.测试结果
1) 建立单链表:
» 输入:100.00
489.12
12454.12
1234.10
823.05
109.20
5.27
1542.25
839.18
83.99
1295.01
1.75
输出:$1581.42