zoukankan      html  css  js  c++  java
  • 第14 、15教学周作业

    第14 、15教学周作业,实为第8、9周作业。

    要求一:

    完成14、15周的所有PTA中题目集。(一周两次pta作业,共四次。)

    截图如下:

    第14周PTA(1):

    第14周PTA(2):

    第15周PTA(1):

    第15周PTA(2):

    要求二:

    题目1:判断上三角矩阵

    1.实验代码

    #include <stdio.h>
    #define N 10
    int main()
    {
      int a,n,i,j,k;
      int b[N][N],sum=0;
      scanf("%d",&a);
      for(i=0;i<a;i++){
        scanf("%d",&n);
        sum=0;
      for(j=0;j<n;j++){
      for(k=0;k<n;k++){
      scanf("%d",&b[j][k]);
      if(j>k){
        sum+=b[j][k];
    }
    }
    }
    if(sum==0){
    printf("YES
    ");}
      else
        {
    	printf("NO
    ");}
    }
    return 0;
    }
    

    2. 设计思路

    (1)题目算法
    第一步:定义N为10;
    第二步:把矩阵的个数a,矩阵的行与列n(本题行与列是相等的),计数行的j,计数列的k,下三角的和sum,形成矩阵数字的数组b[N][N]均设为整形变量;
    第三步:输入矩阵的个数a,写for循环语句,来从第一个矩阵,第二个矩阵......进行循环;
    第四步:写循环语句,构成矩阵;
    第五步:判断j>k?(行大于列说明是下三角),然后把下三角的数相加;
    第六步:判断sum是否为零,如果为零,则输出YES,否则输出NO。
    (2)流程图

    3.本题调试过程碰到问题及解决办法

    (1)本题在做对之前一直不知道如何判断为上三角矩阵,后来在询问室友后,知道如果把下三角的数加在一起仍等于零即可,这才有了思路。
    (2)可是后来发现仍然做错,再次询问了室友后发现没在矩阵个数的那个循环语句里写sum=0。(写它的目的就是为了每到一个新的矩阵的时候,sum清零,开始重新计算),添加上即可。
    错误截图:
    小插曲:本人在做此道题的时候,多考虑了一个换行问题,认为测试最后一个矩阵的时候不换行,其余的情况下换行,后来发现这完全是多余的!

    题目2: 冒泡法排序

    1.实验代码

    #include<stdio.h>  
    int main()  
    {  
        int n,k,i,j,t,a[100];  
        scanf("%d%d",&n,&k);  
        for(i=0;i<n;i++)  
        scanf("%d",&a[i]);  
        for(i=0;i<k;i++){  
        for(j=0;j<n-1;j++)  
            if(a[j]>a[j+1]){  
                t=a[j];  
                a[j]=a[j+1];  
                a[j+1]=t;  
            }  
        }  
        for(i=0;i<n;i++){  
        printf("%d",a[i]);  
        if(i!=n-1) printf(" ");  
        else printf("
    ");  
        }     
    }  
    

    2. 设计思路

    (1)题目算法
    第一步:定义扫描次数k,待排序的整数n,计数i和j,t为整形变量;
    第二步:输入k,n;
    第三步:比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止;
    第四步:对前n-1个数进行第二趟冒泡排序,结果使次大的数安排在第n-1个元素位置,重复,共经n-1趟排序。
    (2)流程图

    3.本题调试过程碰到问题及解决办法

    本体没遇到任何问题。
    备注:写此题的原因是这道题老师反反复复的强调,所以应该重视。

    题目3:fibonacci数列

    1.实验代码

    #include <stdio.h>
    int main()
    {
      int a[12]={1,1};
      int i;
      for(i=2;i<12;i++){
        a[i]=a[i-1]+a[i-2];}
         for(i=0;i<12;i++){
         	printf("%6d",a[i]);
        if((i+1)%3==0)
          printf("
    ");
        }
       return 0;
    }
    

    2. 设计思路

    (1)题目算法
    第一步:设置一个有12个数的一维数组,并且数组中第一个、第二个数均为1,再设置i为整形用来计数;
    第二步:写循环序列,当i从2到11时, a[i]=a[i-1]+a[i-2];(注意: fibonacci数列的含义是第一项第二项为一,以后的每项等于前两项之和)
    第三步:再次循环(i从0到11),用来输出,注意题目要求使用%6d的格式输出;
    第四步:根据题目要求(按每行打印3个数的格式输出),进行判断,如果(i+1)%3为0,则输出换行。
    (2)流程图

    3.本题调试过程碰到问题及解决办法

    本题没有错误发生。
    但是值得注意的是,本题在最后换行时,要i+1,原因是因为i从0开始计数,0%3也为0,如果从i=0开始算起,则在最开始的时候多换了一次行。

    要求三:

    (1)我的Git地址:https://git.coding.net/jsjyuyaosong/usth--work.c.git

    (2)上传截图:










    要求四:

    个人总结

    (1)①本周你学习了哪些内容?②收获了什么?

    ①这两周,我主要学习了一维数组,二维数组。
    ②收获了有关数组方面的知识点。知道定义一个数组时中括号里的数为数组的个数,但是在表示数组时,往往是从0开始,到总个数减一;二维数组第一个中括号是行数,第二个中括号是列数;知道上三角,下三角,对角线的表示方法;另外,会用数组来做题。

    (2)①本周所学内容中你觉得哪些是难点?②有哪些知识点还不明白?

    ①我觉得根据数组来做题就是难点,有的时候可能思路跟不上,不过自己静下心来多琢磨琢磨就好了,无非就是多几个循环。②我的熟练能力不足,应该多加练习,另外看得出老师重点讲的冒泡和选择法排序,应加以练习。

    要求五

    作业互评

    (1)杨志群:http://www.cnblogs.com/12138-/p/7955161.html
    截图:
    (2)杨雨鑫:http://www.cnblogs.com/yangyuxin/p/7928352.html

    (3)姚舜禹:http://www.cnblogs.com/yaoshunyux/p/7965918.html

    表格和折线图

    ①表格

    ②折线图

    IT小白
  • 相关阅读:
    [转]中英文停止词表(stopword)
    [转]Memcached常用命令及使用说明
    Java导出excel并下载功能
    Java List 汉字进行排序
    Tengine笔记3:Nginx的反向代理和健康状态检查
    Tengine笔记2:通过IP、域名、端口实现虚拟主机
    Tengine笔记1:安装Tengine和Tengine说明
    Linux学习笔记6-Linux根目录下各个目录的作用
    Linux学习笔记5-搭建内网Yum源
    Python学习笔记10-Python MysqlHelper ,MySql 辅助类
  • 原文地址:https://www.cnblogs.com/jsjyys/p/7955576.html
Copyright © 2011-2022 走看看