#7-1 判断上三角矩阵 (15 分) 上三角矩阵指主对角线如下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。 本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 ##程序c++
#include<stdio.h> int main() { int T; scanf("%d",&T); for(int i=0;i<T;++i) { int n; scanf("%d",&n); int a[n][n],flag=1; for(int j=0;j<n;++j) { for(int k = 0; k < n; ++k) { scanf("%d",&a[j][k]); if(k<j&&a[j][k]!= 0) flag=0 ; } } if(flag) printf("YES\n"); else printf("NO\n"); } return 0; }
##设计思路 上三角矩阵在对角线下都是零,及当行数n与列数m出现m<n时数组Array【n】【m】=0 数组
##3)本题调试过程碰到问题及解决办法 问题:这个程序自己就是不符合题意的,但在pta上却认为是对的; pta的要求是函数
输入测试
2 3 1 2 3 0 4 5 0 0 6 2 1 0 -8 2
输出:设计
YES NO
但实际运行时在输入一个矩阵后会马上输出判断指针
2 3 1 2 3 0 4 5 0 0 6 YES
并且当矩阵为一行一列且不为零时不是对角矩阵,调试
解决: 不知道正确,pta上说答案错误但我在测试时并无出现错误code
#include<stdio.h> int main() { int n,i,a,b,c,e; scanf("%d",&n); int f[n]; for(i=0;i<n;i++) { scanf("%d",&a); int Array[a][a]; for(b=0;b<a;b++) { for(c=0;c<a;c++) { scanf("%d",&Array[b][c]); for(e=0;e<b;e++) { if(Array[b][e]!=0&&f[i]!=1) f[i]=1; } } } if(a==1&&Array[0][0]!=0) f[i]=0; } for(i=0;i<n;i++) { if(f[i]==1) printf("NO\n"); else printf("YES\n"); } }
##4).运行结果截图 blog
#本周请你们完成上周挑战做业的第一部分:给定一个整数数组(包含正负数),找到一个具备最大和的子数组,返回其最大的子数组的和。 例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子数组为[3, 10, -4, 7, 2] ##程序get
#include<stdio.h> #include<stdlib.h> main() { FILE *fp,*FP; char filename[30]; int i,n,a,b,max,c,d,e; scanf("%s",filename);//输入文件名 scanf("%d",&n); int Array[n]; char str[2*n]; if((fp=fopen(filename,"w"))==NULL)//判断文件是否存在 { printf("cannot openfile"); exit(0); } getchar(); gets(str);//向数组中输入字符 fputs(str,fp);//将数组中数据存入文件 fclose(fp); //向文件输入数据 FP=fopen(filename,"r+"); for(i=0;i<n;i++) { fscanf(FP,"%d,",&Array[i]); } //将文件中数据提取出 max=Array[0]; for(i=0;i<n;i++) { a=i; b=0; c=0; for(a;a<n;a++) { c++; b=b+Array[a]; if(max<b) { d=c; e=i; max=b; } } } fprintf(FP,"\n"); for(e;e<=d+1;e++) { fprintf(FP,"%d,",Array[e]); } fprintf(FP,"\n%d",max); fclose(FP); }
##设计思路 核心是将数组中最大子数组输出,个人思路就是将全部子数组进行比较,简单粗暴,
##3)本题调试过程碰到问题及解决办法 问题:在将数据写入文件时,尝试将数组总体输入失败如:fprintf(FP,"%d,",Array[e]);、、、fputs(Array,FP); 解决:暂未解决,应该是函数选错,书上并无找到 ##4).运行结果截图
##5).本题用时3小时30分钟,30用与写与调试,3小时阅读思考
较为麻烦,须要加大训练 |||||||||||||| |:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--| |周/日期|这周所花的时间|代码行|学到的知识点简介|目前比较迷惑的问题| |3/2-3/8|3天|300|指针、文件、数组|getchar()不知道| |3/9-3/13|2天|200|指针|文件|-