基础作业 本周没上课,但是请大家不要忘记学习。 本周请大家完成上周挑战作业的第一部分:给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。 例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子数组为[3, 10, -4, 7, 2] 输入: 请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。 输出 在不删除原有文件内容

1丶 实验代码

#include<stdio.h>
int main(void)
{
int tt,nn,i,j,c[11][11];
int flag=1;
scanf("%d",&tt);
while(tt--){
scanf("%d",&nn);
for(i=0;i<nn;i++){
for(j=0;j<nn;j++){
scanf("%d",&c[i][j]);
} 
} 
for(i=1;i<nn;i++){
for(j=0;j<i;j++){
if(c[i][j]==0)
flag*=1;
else
flag*=0; 
}
 }
if(1==flag) 
printf("YES\n");
else
printf("NO\n");
}
return 0;
}

编程总结
1.定义变量
2.定义数组
3.运用循环语句运算
4.判断数据
5.打印结果

自我评价:看了非常多的视频讲解和代码,花了很长时间,我还需要更努力的学习


实验代码

#include<stdio.h>
#include<stdlib.h>
int main()
{
	FILE*fp;
	int i,j,m,n,max,sum;
	int b[8];
	char ch;
	(fp=fopen("D:\\jiajia.txt","w+"));

	
		

		for(i=0;i<8;i++)
		{
			fscanf(fp,"%d%c",&b[i],&ch);
		}
	    for(i=0;i<8;i++)
	    {
	    	sum=0;
	    	for(j=i;j<0;j++)
	    	{
	    		sum =sum+b[j];
	    		if(sum>max)
	    		max = sum;
	    		
			}
		}
		for(i=0;i<8;i++)
		{
			sum=0;
			for(j=i;j<0;j++)
			{
				sum=sum+b[j];
				if(max==sum)
				{
					m=i;
					n=j;
				}
			}
		}
		for(j=m;j<=n;j++)
		{
			 printf("%d ",b[j]);  
             fprintf(fp,"%d ",b[j]);
		}
		printf("\n%d", max);
        fprintf(fp,"%d\n", max);

        if(fclose(fp)){
		
        printf("Can not close the file! \n");
        exit(0);
		}
		return 0;
	}

编程总结
1.定义变量
2.进行对数组中元素的输入。
3.利用for循环语句对数的比较
4.选择数组中某一段元素截取
5.输出结果
自我评价;请教同学将这一题解答出来,还需要更加努力

posted on 2019-03-16 11:48  佳佳佳333  阅读(209)  评论(1编辑  收藏  举报