第三周作业

7-1 判断上三角矩阵 (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

1.代码。

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

2.设计思路。

##3.问题与方法。 问题1:用了两次循环,但是只判断一次,输出一个答案。 方法:将判断的if语句放到第一个for循环结构中。 问题2:输出的答案是一致的,答案是错误的。 方法:用来进行判断的字符,应该进行重置。 ##4.运行编辑图。

基础作业.

例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子数组为[3, 10, -4, 7, 2]

输入:

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

输出

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

1.代码。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void)
{
	FILE * fp;
	int n,i,j,p,q;
	int a[100];
	int sum=0,max=0;
	if((fp=fopen("C:\\f12-1.txt\\f1.txt","r+"))==NULL){
	printf("File open error!\n");
	exit(0);
    }
    scanf("%d",&n);
    fprintf(fp,"%d\n",n);
    for(i=0; i<n; i++){
    	scanf("%d",&a[i]);
    	fscanf(fp,"%d",&a[i]);
    	fprintf(fp,"%d",a[i]);
	}
    for(i=0; i<n; i++){
    		int sum=0;
    		for(j=i; j<n;j++){
    			sum+=a[j];
    			if(sum>max)
    			max=sum;
			}
	}
	for(i=0; i<n; i++){
		 sum=0;
		for(j=i; j<n; j++){
			sum+=a[j];
			if(sum=max){
				p=i;
				q=j;
				break;
			}
		}
	}
	   printf("\n");     
	fprintf(fp,"%d",max);
	printf("\n%d",max);
	if(fclose(fp))
    {
    printf("Can not close the file!\n");
    exit(0);
    }
    return 0;
}

2.设计思路。

##3.问题与方法。 问题1:输入一个数字n后,就无法运行下去。 方法:是下面的for语句中,少一个取地址符。 问题2:输入数组中的数无法输出。 方法:还需要一个fscanf语句,不应只是需要一个fprintf语句。 ##4.运行编辑图。 #学习进度条。
周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周 2.23-3.2 三天 40 一维数组的定义和使用;一维数组的初始化;以及使用一维数组编程 一维数组的定义,以及字符的定义,不能很好的定义;以及使用for循环语句输入数值,字符,觉得不是很得心应手
第二周 3.3-3.9 四天 70 使用文件来编程;了解文件的概念;文本文件与二进制文件;缓冲文件系统;文件的结构与文件类型指针;文件的打开方式 文件的输入输出,无法确保其输入输出,总是会忘记再加上fscanf与fprintf;以及文本的使用,不知道如何更好地使用
第三周 3.10-3.16 三天 80 预习二维数组;了解其定义与引用; 了解其用法与初始化 文件的使用还有很大的问题,总是会出现无法打开其文件的错误;二维数组则是下标的确立有问题
#学习感悟。 随着时间的推进,知识点越来越多,而解决问题的方能力却没有很好的提升,这是自己的不足;随着这次老师叫我们自己学习,自身的自学能力还有很大的提升;前面所学习的知识点,也因该去多多的回顾,进行自身的改正。
posted @ 2019-03-16 00:31  平安2  阅读(192)  评论(1编辑  收藏  举报