第八次作业
要求一:
要求二:
(1).判断上三角矩阵
1.实验代码
#include<stdio.h> int main() { int n,i; scanf("%d\n",&n); for(i=0;i<n;i++) { int s[10][10]={0},c[10][10]={0},z,a,b,flag=0; scanf("%d\n",&z); for(a=0;a<z;a++) { for(b=0;b<z;b++) { scanf("%d",&s[a][b]); if(b<a) c[a][b]=s[a][b]; if(c[a][b]!=0) flag=1; } } if(flag) printf("NO\n"); else printf("YES\n"); } }
2 设计思路
(1)文字表述:
第一步:分别定义n,i,z为整型以表示“矩阵个数,循环标记,矩阵大小“,并且定义一个二维数组s表示矩阵,定义a,b来表示当前行列数;
第二步:由题目中关于上三角矩阵的定义推出使用一个新数组c来表示主对角线以下的元素,根据a,b情况将s数组中的值存放入c;
第三步:根据判断c中元素是否都为0,决定此矩阵是否为上三角矩阵
(2)流程图:
3.本题调试过程碰到问题及解决办法
问题:各答案错误,在DEV—C上运行时发现无法输入第二个矩阵
解决方法:发现了在第一个FOR语句后的分号,删除后即正确
(2)数组元素循环右移问题:
1.实验代码
#include<stdio.h> int main() { int n,m; scanf("%d %d\n",&n,&m); if(n<=m) m=m-n; int a[n],i=0; for(i=0;i<n;i++) { int s=i+m; if(s<n) scanf("%d",&a[s]); else if(s>=n) scanf("%d",&a[s-n]); } for(i=0;i<n;i++) { if(i<(n-1)) printf("%d ",a[i]); else printf("%d",a[i]); } }
2 设计思路
(1)文字表述:
第一步:分别定义m,n为整型以表示“数的个数,位移位数“,并且定义一个数组a表示整数序列;
第二步:m=m%n,防止出现m大于n的1情况;(该思路想到时PTA以关闭,所以于实验代码不同)
第三步:将数在输入时输入到位移后的位置
第四步:输出结果;
(2)流程图:
3.本题调试过程碰到问题及解决办法
本题并未遇到调试问题
要求三:
GIT地址:https://git.coding.net/q871057265/lwq.git
截图:
要求四:
(1)这两周你学习了哪些内容?收获了什么?
这两周我主要学习了数组,二维数组方面的知识,在我看来在编程平日中,如果我们有一组相同数据类型的数据,例如有50个数字,这时候如果要用变量来存放它们的话,就要分别定义50个变量,并且要记下这50个变量的名字,这会相当麻烦,这时候就可以用一个数组变量来存放他们,大大方便了我们的操作;
(2)本周所学内容中你觉得哪些是难点?有哪些知识点还不明白?
在这两周的学习内容中我觉得数组的下标这一块是一个难点,我经常会从1开始计数导致数组下标超出,还是需要多多练习;
要求五:
互评:
1:http://www.cnblogs.com/jsjyys/p/7955576.html(于耀淞)
2:http://www.cnblogs.com/DavidPark/p/7955168.html(丰大为)
3:http://www.cnblogs.com/xmb1547828350/p/7900249.html(徐铭博)
学习进度条: