课堂练习
2015-03-23 17:58
162 查看
1.设计思想
首先将随机生成的数存入一个数组中,然后计算每个子数组的和,定义一个二维数组记录和,该二维数组第一行表示一个数的行,第二行为相邻两个数相加的和的行,以此类推将所有的和存入,并将所有子数组的和进行输出。找出最大的子数组的和记录它的坐标及m和n,将最大数组的和输出,并对该和所对应的子数组中的数进行输出。
2.源程序
#include <iostream>
using namespace std;
#define N 20
void main()
{
int a
,b
={0},k=0;
cout<<"生成的数组为:";
for(int i=0;i<N;i++) //生成数组里的随机数
{
a[i]=rand()%100-50;
cout<<a[i]<<" ";
}
cout<<endl;
for(int i=0;i<N;i++)
{
for(int j=0;j<N-i;j++)
{
int k=1,m=j;
while(k<=i+1)
{
b[i][j]+=a[m];
m++;
k++;
}
}
}
cout<<"各子数组的和分别为:";
for(int i=0;i<N;i++)
{
for(int j=0;j<N-i;j++)
{
cout<<b[i][j]<<" ";
}
}
cout<<endl;
int m=0,n=0;
for(int i=0;i<N;i++)
{
for(int j=0;j<N-i;j++)
{
if(b[i][j]>b[m]
)
{
m=i;
n=j;
}
}
}
cout<<"最大的和为:"<<b[m]
<<endl;
cout<<"最大子数组中的数为:";
for(int i=n;i<=n+m;i++)
cout<<a[i]<<" ";
cout<<endl;
}
3.结果截图
4.总结
开始的时候有一个思想,但是想了很久发现比较难实现,后来又琢磨了很久最终实现,在这个过程中对于将每个子数组的和存在二维数组中遇到了难题,还有就是子数组的输出过程中。以后想问题还是要思路清晰,认真思考,也尽可能的在纸上进行演算让自己的思维更明白些。
5.
(1)
(2)
(3)
首先将随机生成的数存入一个数组中,然后计算每个子数组的和,定义一个二维数组记录和,该二维数组第一行表示一个数的行,第二行为相邻两个数相加的和的行,以此类推将所有的和存入,并将所有子数组的和进行输出。找出最大的子数组的和记录它的坐标及m和n,将最大数组的和输出,并对该和所对应的子数组中的数进行输出。
2.源程序
#include <iostream>
using namespace std;
#define N 20
void main()
{
int a
,b
={0},k=0;
cout<<"生成的数组为:";
for(int i=0;i<N;i++) //生成数组里的随机数
{
a[i]=rand()%100-50;
cout<<a[i]<<" ";
}
cout<<endl;
for(int i=0;i<N;i++)
{
for(int j=0;j<N-i;j++)
{
int k=1,m=j;
while(k<=i+1)
{
b[i][j]+=a[m];
m++;
k++;
}
}
}
cout<<"各子数组的和分别为:";
for(int i=0;i<N;i++)
{
for(int j=0;j<N-i;j++)
{
cout<<b[i][j]<<" ";
}
}
cout<<endl;
int m=0,n=0;
for(int i=0;i<N;i++)
{
for(int j=0;j<N-i;j++)
{
if(b[i][j]>b[m]
)
{
m=i;
n=j;
}
}
}
cout<<"最大的和为:"<<b[m]
<<endl;
cout<<"最大子数组中的数为:";
for(int i=n;i<=n+m;i++)
cout<<a[i]<<" ";
cout<<endl;
}
3.结果截图
4.总结
开始的时候有一个思想,但是想了很久发现比较难实现,后来又琢磨了很久最终实现,在这个过程中对于将每个子数组的和存在二维数组中遇到了难题,还有就是子数组的输出过程中。以后想问题还是要思路清晰,认真思考,也尽可能的在纸上进行演算让自己的思维更明白些。
5.
(1)
活动 | 上课 | 编写代码 | 看书 | 休息娱乐 | 总计 |
周一 | 300 | 300 | |||
周二 | 400 | 400 | |||
周三 | 100 | 100 | |||
周四 | 400 | 400 | |||
周五 | 200 | 30 | 300 | 530 | |
周六 | 60 | 300 | 360 | ||
周日 | 120 | 60 | 200 | 380 | |
总计 | 1400 | 310 | 60 | 800 | 2570 |
日期 | 开始时间 | 结束时间 | 中断时间 | 净时间 | 活动 | 备注 |
21/3 | 22:00 | 23:00 | 22:40 | 40 | 找思路 | 有一点想法 |
22/3 | 14:00 | 14:40 | 40 | 找思路 | 用二维数组存储和 | |
21:50 | 23:00 | 70 | 编程 | 但是在二维数组求和那卡住了 | ||
23/3 | 10:30 | 12:30 | 120 | 编程 | 数组求和做出来,但是子数组输出有点不会 | |
16:00 | 17:30 | 90 | 编程、测试 | 解决了问题,测试成功 |
日期 | 编号 | 类型 | 引入阶段 | 排除阶段 | 修复时间 | 修复缺陷 |
22/3 | 1 | 二维数组定义 | 编码 | 编译 | 45 | 自己在纸上举例子进行了最后的完善定义 |
22/3 | 2 | 循环混乱 | 编码 | 编译 | 120 | 经过思考进行改进 |
相关文章推荐
- 2017/3/30课堂小练习-------XXX系统(链表插入删除打印)
- 课堂练习js猜谜语
- 课堂练习:返回一个整数数组中最大子数组的和
- 《C++沉思录》-第九章-- 一个课堂练习的分析(上)
- CCNA课堂练习:OSPF的介绍及配置
- 软件工程课堂练习找水王
- CCNA课堂练习:控制访问列表(ACCESS LIST)
- 课堂练习
- 课堂练习3: 定义一个平面中的Circle类
- 对象的组合 课堂练习4
- 结对开发--课堂练习--c++
- 课堂练习-促销书
- 课堂练习之《买书》
- 课堂练习4
- 课堂练习3(第四周)
- 4月17号周五课堂练习:电梯最优问题
- 课堂练习------电梯调度
- 课堂练习——找水王
- 课堂练习--找“水王”