第八次作业

要求一:

要求二:

(1).判断上三角矩阵

1.实验代码

#include<stdio.h>
int main()
{
    int n,i;
    scanf("%d
",&n);
    for(i=0;i<n;i++)
    {
        int s[10][10]={0},c[10][10]={0},z,a,b,flag=0;
        scanf("%d
",&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
");
        else
        printf("YES
");    
    }
 } 

 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,&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(徐铭博)

学习进度条:

 

原文地址:https://www.cnblogs.com/ryo-/p/7927967.html