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

要求一:

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

截图如下:

要求二:

题目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\n");}
  else
    {
	printf("NO\n");}
}
return 0;
}

2. 设计思路

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

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

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

题目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("\n");  
    }     
}  

2. 设计思路

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

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("\n");
    }
   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)流程图
第14 、15教学周作业

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

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

要求三:

https://git.coding.net/jsjyuyaosong/usth--work.c.git

(2)上传截图:

第14 、15教学周作业
第14 、15教学周作业
第14 、15教学周作业
第14 、15教学周作业
第14 、15教学周作业
第14 、15教学周作业
第14 、15教学周作业
第14 、15教学周作业
第14 、15教学周作业
第14 、15教学周作业

要求四:

个人总结

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

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

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

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

要求五

作业互评

(1)杨志群:http://www.cnblogs.com/12138-/p/7955161.html
截图:第14 、15教学周作业
(2)杨雨鑫:http://www.cnblogs.com/yangyuxin/p/7928352.html
第14 、15教学周作业
(3)姚舜禹:http://www.cnblogs.com/yaoshunyux/p/7965918.html
第14 、15教学周作业

表格和折线图

①表格
第14 、15教学周作业
②折线图
第14 、15教学周作业

相关文章:

  • 2021-08-13
  • 2021-07-14
猜你喜欢
  • 2021-11-01
相关资源
相似解决方案