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 二维数组 暂无

    三、学习感悟

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

  • 相关阅读:
    VOA 2009/11/02 DEVELOPMENT REPORT In Kenya, a Better Life Through Mobile Money
    2009.11.26教育报道在美留学生数量创历史新高
    Java中如何实现Tree的数据结构算法
    The Python Tutorial
    VOA HEALTH REPORT Debate Over New Guidelines for Breast Cancer Screening
    VOA ECONOMICS REPORT Nearly Half of US Jobs Now Held by Women
    VOA ECONOMICS REPORT Junior Achievement Marks 90 Years of Business Education
    VOA 2009/11/07 IN THE NEWS A Second Term for Karzai; US Jobless Rate at 10.2%
    Ant入门
    Python 与系统管理
  • 原文地址:https://www.cnblogs.com/xirfly/p/10521709.html
Copyright © 2011-2022 走看看