C语言第七次博客作业--一二维数组

一、PTA实验作业

题目1:7-3 出生年

1.本题PTA提交列表

2.设计思路

定义year为年份,number存放要求不同数字个数,count计数不同数位,i,rj,n,flag,u,v。
     a[4]存放年份各个位数。
     输入year,number。
     for i=year to.....
     定义a[4]={0},j=0,n=i。
       对n取余再除10,将余数r依次存入a[j++].
          count=1
          for u=1 to u=3
           flag=1
              for v=0 to v=u-1
              如果a[u]=a[v] flag=0 
              跳出当前循环 
              end 
            end
          如果flag!=0,count++
          如果count==number,跳出循环。
         end
          输出年份和相差年份。

3.代码截图

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

  • 1.刚开始不知道如何补零
    解决方法:上网查询。
  • 2.在如何判断年份有几个不同数的时候,判断方法错误。
    解决方法:和同学交流。

题目2:7-7 找鞍点

1.本题PTA提交列表

2.设计思路

定义n为n维数组,i,j,c,r,flag=0。
   定义a[6][6]。
   输入n
  for i=0 to n-1
   for j=0 to n-1
    输入数值赋予a[i][j].
  end.
 for i=0 to n-1
   c=0
   for j=0 to j=n-1
     如果a[i][j]>=a[i][c],c=j
   end
   r=0
   for j=0 to j=n-1
     如果[j][c]<=a[r][c],r=j
   end
  如果 i==r flag=1 跳出循环  
  end
  如果flag==1,输出r,c。
  如果flag==0,输出NONE。

3.代码截图

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

  • 1.没有考虑考虑并列极值

    解决方法:将>改成>=

题目3:7-10 杨辉三角

1.本题PTA提交列表

2.设计思路

定义n存放三角的行数,i,j
    输入n
   定义a[10][10]
   for i=0 to n-1
     for j=0 to n-1
      如果i==j或j==0,a[i][j]=1
      否则 a[i][j]=a[i-1][j-1]+a[i-1][j]
      end 
 end
   for i=0 to n-1
     for j=0 to n
       输出a[i][j]
       换行
       end

3.代码截图

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

  • 本题没有遇到什么问题。

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

三、同学代码结对互评

7-3
郑嘉亮代码:
我的代码:

评价:我们两个在判断不同数个数的方法不同,就代码而言,他的较为简单且有注释可读性高,但我的代码也容易懂,我更喜欢我的代码。

四、本周学习总结

1.你学会了什么?

1.1 C中如何存储字符串?

  • 采用字符型数组存储字符串。

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

  • 结束标志:\0
    原因:如果没有\0,那么在使用系统函数处理字符串的时候,函数就不能准确判断字符串在哪里结束,从而可能导致数组越界。

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

  • 三种
    1.使用循环结构和scanf("%c", )
    2.scanf("%s", )
    3.gets()

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

  • 定义字符ch存放数字字符
    输出ch-'0'

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

  • 16进制:
    定义字符数组a[100]存储16进制字符串,result为转化后结果
    number=0
    for i=0 to a[i]'\0'
    若a[i]为字符0到9,result=result16+a[i]-'0';
    若a[i]为'a'到'f',result=result
    16+a[i]-'a'+10;
    若a[i]为'A'到'F‘,result=result*16+a[i]-'A'+10;
    end
    输出number
    2进制
    定义字符数组a[100]存储2进制字符串,result为转化后结果
    for i=0 to a[i]
    '\0'
    若a[i]为字符0或1,result=result*2+a[k]-'0';
    end
    输出number

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

  • 对字符串的几种输入还不能很好的区别使用。

3.期中考试小结

3.1 你认为为什么没考好?

  • 1.基础的概念没有熟练。
    2.粗心,写反空格,把上面的抄下来抄错。
    3.时间安排不当。
    4.手写代码能力差,卷面不整洁。

3.2 罗列错题

  • 选择题1,10,11,17。对基础概念不清晰。
    选择题14,16,19。粗心看错。
    选择题18。对位的移动不熟练。
    分析题1。粗心抄错,且不知道函数中的输出也要执行。
    编程题3,少了一个结束循环的语句。

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

  • 将基本的知识点掌握,提高代码简洁和可读性,多学习出色的人的思考方式。
posted @ 2017-12-02 21:03  oracler  阅读(294)  评论(3编辑  收藏  举报