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

一、PTA实验作业

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

1.本题PTA提交列表

2.设计思路

定义n存放数的个数,most存放出现次数最多的数,time存放最多次数
输入n
定义a[n]存放数字,aa[n]存放各数出现次数
将数字存入数组
for i=1 to i>n
   for j=n-i to j>n
      若a[i]=a[j] aa[i]]+1
    end
end

先令time=aa[1];most=a[1]
  for i=1 to i>n
     若aa[i]>time  time=aa[i];most=a[i];
输出most和time

3.代码截图

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

  • 部分错误:误将每个数字出现次数都初始化为0,后来发现这样做不正确,会让出现次数少一

题目2:7-3 出生年

1.本题PTA提交列表

2.设计思路

定义year存放年份,diff存放要求不同数字个数,count存放实际不同数位=4,born存放出生年,year1也存放年份
定义a[4]存放年份各个位数
输入year,diff,born=year,
for year to...
   year1=year
   for i=1 to i=5
       a[i]=year1%10;
	year1/=10
    end
  
    for i=1 to i=5
        for j=i+1 to j=5
             如果a[i]=a[j] count-- 跳出当前循环 end end

    如果count=diff跳出循环
    count=4  end
输出年份和相差年份

3.代码截图

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

  • 本题无误

题目3:7-10 杨辉三角

1.本题PTA提交列表

2.设计思路

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

3.代码截图

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

  • 格式错误:将%-md和%md作用混淆导致输出空格在右格式错误

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

三、同学代码结对互评

陈文杰代码: 我的代码:

评价:我的代码比他的简洁的多,但是他采用函数封装了各个功能,让他的代码结构更清晰,他的代码通篇无注释,让人不好理解,而且他对于小于10的年份输出采用了000%d,其实只要用%04d就能实现这个功能,还有他计算不同位数使用的方法太
复杂了,可能是思路不清晰的结果,我更喜欢我的代码

四、本周学习总结

1.你学会了什么?

1.1 C中如何存储字符串?

c中采用字符型数组存储字符串

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

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

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

三种
 - 1.使用循环结构和scanf("%c",  )语句输入
 - 2.scanf("%s",  )这种输入方法遇到空格就会中止
 - 3.gets()这种方法只有遇回车会终止,比上一种好

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

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

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

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

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

这题第一个空是要判断对角线两侧是否相同,然后根据fond变量判断是否对称矩阵,一开始没有看懂程序,导致思路混乱才错误
pta的题目有几题会出现段错误,百度后知道是数组越界的问题

3.期中考试小结

3.1 你认为为什么没考好?

  • 对时间把握的不够好,导致后面编程题和改错题时间不足,但这也看出我对基础知识掌握的不够好,所以做题较慢
  • 在纸面上写代码很不适应,过度依赖编译器
  • 考前没有做好复习工作

3.2 罗列错题。

选择题第六题我的问题问题主要是b,c两项现在知道逻辑运算符可以这么用,c选项少个分号,我以为考试应该不会考这种错误。。。。
填空题第九空忘记了要乘1.0才能使结果变为小数
编程题第三大题阶乘没写出来很不应该,因为写到最后,没有时间,太慌乱了,结果没做出来

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

  • 不应该只做pta的题目,多在纸上写代码,多看别人的代码,作业认真完成
原文地址:https://www.cnblogs.com/Airoure/p/7943960.html