zoukankan      html  css  js  c++  java
  • 第三周作业

    基础作业

    本周没上课,但是请大家不要忘记学习。
    本周请大家完成上周挑战作业的第一部分:给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。
    例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子数组为[3, 10, -4, 7, 2]

    输入:

    请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。

    输出

    在不删除原有文件内容的情况下,将最大子数组以及子数组的和写入文件。

    实验代码:

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        FILE*fp;
        int i,j,t,m,n,x,T;
        scanf("%d",&T);
        int a[T];
        fp=fopen("C://Users//Dell//Desktop//Rehiwang.txt","r+");
        for(i=0;i<T;i++)
        {
            fscanf(fp,"%d,",&a[i]);
        }
        t=a[0];
        for(i=0;i<T;i++)
        {
            x=0;
            for(j=i;j<T;j++)
            {
                x+=a[j];
                if(x>=t)
                {
                    t=x;
                    m=i;
                    n=j;
                }
            }
        }
    
            for(i=m;i<=n;i++)
        {
            if(i==m)
                fprintf(fp,"\n%d,",a[i]);
            else if(i==n)
                fprintf(fp,"%d",a[i]);
                else
                    fprintf(fp,"%d,",a[i]);
        }
        return 0;
    }
    

    设计思路:

    本题调试过程中遇到的问题及解决方案;

    运行截图:


    判断上三角矩阵 (15 分)

    上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。

    本题要求编写程序,判断一个给定的方阵是否上三角矩阵。

    输入格式:

    输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。

    输出格式:

    每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。

    输入样例:

    2
    3
    1 2 3
    0 4 5
    0 0 6
    2
    1 0
    -8 2

    输出样例:

    YES
    NO

    实验代码:

    #include<stdio.h>
    int main()
    {
        int T,i,n,j,t;
        scanf("%d",&T);
    
        for(i=1; i<=T; i++)
        {
            scanf("%d",&n);
            int a[n][n],flag=0;
            for(j=0; j<n; j++)
                for(t=0; t<n; t++)
                    scanf("%d",&a[j][t]);
            for(j=1; j<n; j++)
                for(t=0; t<j; t++)
                    if(a[j][t]!=0)
                        flag=1;
                        if(flag==0)
                            printf("YES\n");
                        else
                            printf("NO\n");
    
        }
        return 0;
    }
    

    设计思路:

    本题调试过程中出现的问题及解决方案:

    问题:把数组定义成了a[n-1][n-1],并把flag的赋值放在了for循环的外面。
    解决方案:认真的自己所写的代码,并读懂题意,找出问题所在。
    截图:

    运行截图:

  • 相关阅读:
    pipelinewise 学习二 创建一个简单的pipeline
    pipelinewise 学习一 docker方式安装
    Supercharging your ETL with Airflow and Singer
    ubuntu中使用 alien安装rpm包
    PipelineWise illustrates the power of Singer
    pipelinewise 基于singer 指南的的数据pipeline 工具
    关于singer elt 的几篇很不错的文章
    npkill 一个方便的npm 包清理工具
    kuma docker-compose 环境试用
    kuma 学习四 策略
  • 原文地址:https://www.cnblogs.com/Leehomwang/p/10537269.html
Copyright © 2011-2022 走看看