标签:+= scanf 临时 连续 依次 中断 控制 border 输入
设计思想:
输入一个4×4的二维整数数组,定义变量j,i分别用来控制数组的行和列,sum变量用来求和,变量M用来输出二维子数组的最大值,max用来临时储存和的最大值,当max的值小于零的时候说明其他元素加上该子数组的和会变小,则舍弃这一子数组,即令max=0,通过循环依次计算连续子数组和的值与max比较,求出最大值赋值给M。
源程序代码:
#include<stdio.h>
int main()
{
int x[4][4];
int sum=0;
int max=0;
int i=0;
int j=0;
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
scanf("%d",&x[i][j]);
}
}
int M=x[0][0];
for (i=0;i<4;i++)
{
int y=i;
do
{
for (j=0;j<4;j++)
{
for (int u=i;u>=y;u--)
{
sum+=x[j][u];
}
max+=sum;
if (max>=M)
{
M=max;
}
if (max<0)
{
max=0;
}
sum=0;
}
y--;
max=0;
}
while (y>=0);
}
printf("\n连续最大子数组之和:");
printf("%d\n", M);
return 0;
}
运行结果:
合作过程及体会:
这个程序难度较大,需要两个人积极地配合,分工合作。
时间记录日志:
日期 | 开始时间 | 结束时间 | 中断时间 | 净时间 | 活动 |
10.18 | 9:50 | 11:25 | 5分钟 | 90分钟 | 听课 |
10.19 | 19:00 | 20:00 | 0 | 60分钟 | 程序分析 |
10.20 | 14:30 | 17:00 | 20分钟 | 130分钟 | 编写代码 |
10.21 | 12:30 | 15:00 | 40分钟 | 140分钟 | 修改代码、单元测试 |
标签:+= scanf 临时 连续 依次 中断 控制 border 输入
原文地址:https://www.cnblogs.com/jlglp/p/9825085.html