基础作业 本周没上课,但是请大家不要忘记学习。 本周请大家完成上周挑战作业的第一部分:给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。 例如:[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.输出结果
自我评价;请教同学将这一题解答出来,还需要更加努力

猜你喜欢

转载自www.cnblogs.com/jiajia2333/p/10541590.html