• C语言博客作业--一二维数组


    一、PTA实验作业

    题目1:求整数序列中出现次数最多的数

    1. 本题PTA提交列表(要提交列表,不是结果)

    2. 设计思路(用代码表示扣分)

    • 1.先用一个嵌套循环遍历数组找出每个元素出现的次数,并用count[i]++;记录出现的次数。
    • 2.max =count[0];
      if (count[i]>=max){
      max = count[i];
      index= a[i];
      再用一个for循环找出count数组中最大的元素并记录下它的对应的数,就为出现最多次的数
    • 3.最后输出这个数及其它的出现次数。

    3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

    4.本题调试过程碰到问题及PTA提交列表情况说明。

    刚开始没有 将各个项目清零for (i=0;i<n;i++) count [i]=0;导致出错

    题目2:数组循环左移

    1. 本题PTA提交列表(要提交列表,不是结果)

    2. 设计思路(用代码表示扣分)

    • 1.数组的循环左移分n>m和n<m两个主要情况。
    • 2.当n>m时,判断m是否等于0,是则原样输出,不是则先输出下标为m到下标为m-1的元素,再输出下标0到m-1的元素。
    • 3.当n<m时先判断m是否为n的倍数是则原样输出,不是则先将 m= m%n;进行取余数用余数在做2中的步骤输出。

    3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

    4.本题调试过程碰到问题及PTA提交列表情况说明。

    • 开始对于m取最小值0时在最后数字的末尾总有空格导致这个测试点没有过,最后将空格都换为#号才发现问题最后才解决

    题目3: 杨辉三角

    1. 本题PTA提交列表(要提交列表,不是结果)

    2. 设计思路(用代码表示扣分)

    • 1.先把主对角线和第0列上的元素都赋值为1if (j0||ji)a[i][j]=1;
    • 2.由于杨辉三角的定义当if (i>j&&i>=2&&j>0){//其中的每个元素都等于肩上的数相加-----> a[i][j]=a[i-1][j-1]+a[i-1][j];
    • 3.最后输出下三角的二阶矩阵,杨辉三角。

    3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

    4.本题调试过程碰到问题及PTA提交列表情况说明。

    • 刚开始以为是每个元素在右边占4列用了%-4d结果格式错误,后来改成了%4d

    二、截图本周题目集的PTA最后排名。

    三、同学代码结对互评(1分)

    1.互评同学名称:王林聪

    2.我的代码、互评同学代码截图

    我的:

    王林聪的:

    3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

    • 1.王某的代码在第一行和第一列的输入简洁只用一个循环就完成了输入,而我用了两个循环
    • 2.王某对于计算每一行的数用了嵌套循环且第二层的变量随第一层的改变而改变来进行下三角的元素的计算,而我则是用if(i>=j)条件来限定计算下三角
      总的来说的我比较易懂,他的方法很好。
    • 3.最后的输出方法没什么区别
    • 4.最后我看了王某的代码后发现自己的思路有时候是有点复杂了,感觉比较喜欢王某的代码

    四、本周学习总结(3分)

    1.你学会了什么?

    1.1 C中如何存储字符串?

    • 可以把字符串存储到一个字符数组中。

    1.2 字符串的结束标志是什么,为什么要结束标志?

    • 字符串的结束标志是' 0',用结束标志来控制循环

    1.3 字符串输入有哪几种方法?

    • 理论上讲有三种方法:
      scanf("%s",in_buff);
      gets(in_buff);
      fgets(in_buff,BUFFER_SIZE + 1,stdin);

    1.4 数字字符怎么转整数,写个伪代码?

    num = num10 + flag(*str - '0');

    1.5 16进制、二进制字符串如何转10进制?写伪代码?

    • 16进制转为10进制
      先判断字符串是为数字还是大写字母还是小写字母
      若为数字则number= number16+hexad[i]-'0'
      若为大写字母则number= number
      16+hexad[i]-' A ' +10;
      若为小写字母则number = number*16 + hexad[i]-' a ' +10

    • 2进制转为10进制
      先判断字符串是为数字还是大写字母还是小写字母,然后进行对应的计算
      number= number2+hexad[i]-'0'
      number= number
      2+hexad[i]-' A ' +2;
      number = number*2 + hexad[i]-' a ' +2

    2.本周的内容,你还不会什么?

    • 1.7-6的阅览室还是写不了全对
    • 2.对于插入排序不能很好的把握

    3.期中考试小结

    • 对于本周的期中考试,自己十分不满意,感觉离开电脑写编程题有点力不从心,总是会遗漏一些东西,对于课本知识掌握还是不够熟练,没有认真看课本,课后没有认真复习巩固

    3.1 你认为为什么没考好?

    • 考试前没有很好地复习,没有认真看课本一些概念,没有把基本概念记住,没有对以前写过的题目进行反思

    3.2 罗列错题

    • 选择第20题----!x是当x=0时答案不对c语言认为所有非0数都为真即为1

    • 填空题 ----对于科学计数法没有想到

    • 改错题 ---没有认真看第三个的地方是否缺了括号

    • 编程题 ----对于在纸上写编程题思路不是很清晰稍微不注意就写乱了,而且也没有了语法纠错

    3.3 下半学期要怎么调整C的学习?

    • 秉承多打代码,多看书的原则,多向同学探讨问题
  • 相关阅读:
    mac 安装Windows系统
    各种镜像源
    应用官方下载地址汇总
    centos7 升级openssh
    ubuntu16.04升级openssh
    腾讯云
    msdeploy 远程发布到lls
    Java Script 什么是闭包?
    JavaScript我的怀疑
    HTML 之 js是干什么的
  • 原文地址:https://www.cnblogs.com/FOXES/p/7966222.html
Copyright © 2020-2023  润新知