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

一、PTA实验作业

题目1:7-3 出生年

1.本题PTA提交列表

2.设计思路

定义y放年份,n放不同数字个数
输入y和n的值
for(i=0;i<4;i++)
a[i]=b%10;      把年份各个位数的数字赋值给数组a
b/=10;
for(i=0;i<4;i++){
	 for(j=i+1;j<4;j++)
遍历数组a,如果数字一样count减一,且跳出内循环
如果count值等于n满足题意停止循环,输出年份和相差的年份
如果不满足年份加一,其他重新赋值继续循环到满足题意,输出

3.代码截图

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

开始输出的格式有问题,没有前导零。在输出部分进行格式的修改就可以了。

题目2:7-5 数组循环左移

1.本题PTA提交列表

2.设计思路

定义n,m放左移次数,t,j
输入n,m的值
输入数组的值
if(m>n) m=m-n
遍历数组if(i>=m)  for(j=i;j>i-m;j--){   数字两两交换移动
				t=a[j-1];           到满足题意的移动位置
				a[j-1]=a[j];
				a[j]=t;
	for(i=0;i<n;i++){
		if(i==n-1)  是数组最后的数后面不加空格,直接输出数字     
		else
	    输出对应数组数字加空格

3.代码截图

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

提交后都是格式错误,仔细阅读题目发现格式要求。在输出加上判断条件就可以
还有一个测试点m>n的答案错误,对该情况特殊分析,赋值就满足题意了

题目3:7-7 找鞍点

1.本题PTA提交列表

2.设计思路

定义n,i,j,k,max放行的最大值,c记录行标,b记录列标
输入n的值,给数组赋值
 for(j=0;j<n;j++)  max赋值为每行第一个数
	for(i=0;i<n;i++)
	 		if(a[j][i]>=max){  //找出行中的最大值//
	 			max=a[j][i];
c=j;b=i记录下下标
for(k=0;k<n;k++)  判断最大值对应的列该值是否为最小值
是:输出下标
不是:输出NONE

3.代码截图

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

有一个错误是答案错误经过排查发现是输出的大小写与题目不符
当有两个并列的鞍点输出后面:开始在行中找最大值是用的前面比较。加上等号:a[j][i]>=max就拿的是后面那个

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

三、同学代码结对互评

我的代码:

陈文杰代码:

评价:他的代码取各个位数的数字方法有些复杂而且只针对了特殊情况,我的较为简洁且满足一般情况
他判断不同数字每种情况分得很细,让人很清楚但篇幅太长。我用了循环中判断较为简单,稍有一些思维量
该题的做法思路其实都差不多,不同就是代码的选择格式不同。

四、本周学习总结

1.你学会了什么?

1.1 C中如何存储字符串?

c中定义字符型数组存储字符串

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

结束标志:\0
原因:如果没有\0,就不知道字符串在哪结束,导致错误。

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

 - 1.使用循环结构和scanf("%c",  )语句输入
 - 2.scanf("%s",  )遇到空格就会中止
 - 3.gets()这种方法只有遇回车会终止
 - 4.getchar()输入单个字符

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

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

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

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

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

  • 预习作业的题目有些是拿到dev-c中运行得到的答案,自己去分析会经常出错。

循环条件的判断也经常出现一些错误,已经找到思路但错在这一步。

3.期中考试小结

3.期中考试小结

  • 1.对于时间的把握有一些问题,留给编程题的时间有些紧。导致这部分做得不好。
  • 2.审题不太认真,看错题目甚至曲解了题意导致自己在那边浪费时间。
  • 3.基础得一些知识也有一些漏洞,丢掉了一些分
  • 4.代码得写法不够扎实,有些明显的错误。

3.2 罗列错题。

基础知识掌握得不够扎实


代码的写法不够扎实

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

预习更认真一些,把基础打得更扎实一点
pta的题多去练练
多看看别人的代码,提高自己的代码阅读和编写能力

posted @ 2017-12-03 13:18  圣多美  阅读(341)  评论(4编辑  收藏  举报