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

    1.判断上三角矩阵

    上三角矩阵指主对角线以下的元素都为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
    

    1)实验代码

    #include<stdio.h>
    #define N 10
    int main()
    {
    	int T,n;
        int num[N][N];
        int i,j,k;
        int flag = 1; //标记
    	
        scanf("%d",&T); //矩阵个数
        for(i=0;i<T;i++)
        {
            scanf("%d",&n); //矩阵行列数
    
            for(j=0;j<n;j++)
            {
                for(k=0;k<n;k++)
                {
                    scanf("%d",&num[j][k]); //输入
                }
            }
    
            int a,b;
            for(a=1;a<n;a++) //从矩阵第2行开始判断
            {
                for(b=0;b<a;b++) //判断列
                {
                    if(num[a][b] != 0)
                    {
                        flag = 0;
                        break;
                    }
                }
            }
            
            if(flag == 0)
            {
                printf("NO
    ");
            }
            else
            {
                printf("YES
    ");
            }
    
            flag = 1; //重置
        }
    
        return 0;
    }
    

    2)设计思路

    3)调试过程中遇到的问题和解决方案

    无问题

    4)运行结果截图

    2.最大子数组和

    给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。
    输入:
    [1, -2, 3, 10, -4, 7, 2, -5]
    最大子数组为:
    [3, 10, -4, 7, 2]
    输出:
    18
    (大佬)

    1)实验代码

    #include<stdio.h>
    #include<stdlib.h>
    #define p 8
    int main()
    {
    	FILE *fp = fopen("D:\myself\liqingxi\myfirst\challge.txt","a+");
        int num[p],max[p],n[p];
        int i,j;
        int k,t;
    	int a[p],b[p];
        
        for(i=0;i<p;i++)
        {
            fscanf(fp,"%d%c",&num[i]);  //输入
            printf("%d%c",num[i]);
            n[i] = max[i] = num[i];  //复制数组 
        }
        
        fprintf(fp,"
    ");
        //全部加一遍 
        for(i=0,k=0;i<p-1,k<p;i++,k++)  //k是为了表示更新数组元素的下标 
        {
            for(j=i+1;j<p;j++)
            {
                num[i] = num[i] + num[j];  //相加 
                if(max[i] < num[i])  //把相加的数和原来的作比较 
                {
                	a[k]=i,b[k]=j;  //存下标 
                    max[i] = num[i];  //把相加的数存入max数组 ,得到一个新数组 
                }
            }
        }
        
        for(i=0;i<p;i++)
        {
            if(max[0] < max[i])  //在新数组里比较大小 
            {
                max[0] = max[i];
                t=i;  //数组里的第i个元素 
            }
        }
        
        for(k=a[t];k<=b[t];k++)
        {
        	printf("%d ",n[k]);  //输出最大子数组 
        	fprintf(fp,"%d ",n[k]);
    	}
    	
    	fprintf(fp,"
    %d",max[0]); 
        printf("
    %d",max[0]);  //输出 
        
        return 0;
    }
    

    2)设计思路

    3)调试过程中遇到的问题和解决方案

    4)运行结果截图

    二、学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    3/11-3/17 4小时 110 二维数组 暂无

    三、学习感悟

    二维数组的输入,并判断上三角矩阵,最大子数组和

  • 相关阅读:
    图床
    MarkDown认识与入门
    IIS Express
    HTML中的英文缩写标记、属性
    AI-->从新建文档开始说起,串联相关色彩知识
    微软相关软件、操作系统常用下载方法(附离线方式)
    SubLime3 Emmet插件终极教程
    sublime text 3 扩展插件SideBarEnhancements用法教程
    几款前端开发工具比较
    关于VUE项目中报Error: Avoided redundant navigation to current location: 的错
  • 原文地址:https://www.cnblogs.com/xirfly/p/10521709.html
Copyright © 2011-2022 走看看