C语言博客作业--一二维数组
2017-12-14 19:52
232 查看
一、第六次PTA作业
题目1.7-2 求整数序列中出现次数最多的数
1.本题PTA提交列表
2.设计思路
定义整型变量n,i,j 定义数组a[1000],b[1000]={0} 输入n for(i=0;i<n;i++) 输入数组a[i] end i for(i=0;i<n;i++) for(j=0;j<n;j++) if(a[i]==a[j]) 数组b[i]+1 end j end i 定义出现次数t=0 for(i=0;i<n;i++) if(b[i]>t) { t=b[i] j=i } end i 输出a[j],t
3.代码截图
4.本题调试碰到问题及解决办法
一开始两个数相等时定义了一个变量来计算次数,到后面代码量越来越多把自己弄得也乱了,就试着用数组来储存数就解决了题目2.7-3 出生年
1.本题PTA提交列表
2.设计思路
定义整型变量year,n,i,j,sum 定义整型Y为最后输出的年份 定义数组a[4] 输入year,n for(i=year;i<=9999;i++) 定义数组b[10]={0,0,0,0,0,0,0,0,0,0}并每次循环初始化 初始化sum 将年份四个数分别储存进a[0],a[1],a[2],a[3] for(j=0;j<4;j++) b[a[j]]++ end j for(j=0;j<10;j++) if(b[j]) sum++ end j if(sum==n) { Y=i break } end i 输出经过的年份和最后年份
3.代码截图
4.本题调试碰到问题及解决办法
看题目的时候一直不知道怎么比较年份中是否有数字相同,用了数组a来存放4个数字后尝试对数组a中数字直接比较代码量太多越绕越乱,之后想到用1到10十个数代表10个格子定义了数组b,然后直接数格子就变得非常简单了中间忘记要让年份递增导致了错误
题目3.7-4 简化的插入排序
1.本题PTA提交列表
2.设计思路
定义整型变量N,i,j,k 定义swap来储存插入数 定义数组a[N+1] 输入N for(i=0;i<N+1;i++) 输入数组a[i] end i for(j=0;j<N;j++) if(a <=a[j]) { swap=a for(k=N;k>j;k--) a[k]=a[k-1]数组往后移动一格 end k 插入数 break } end j for(i=0;i<N+1;i++) 输出数组a[i] end i
3.代码截图
4.本题调试碰到问题及解决办法
对scanf中空格与回车有点疑问查了资料疑问解决后发现可以直接在数组中输入插入的数,这样就不用再多设置一个数组了
但是最后不管怎么改都有两个测试点段错误
二、同学代码结对互评
1.互评同学名称 :农献清
2.我的代码、互评同学代码截图
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
不同:她的方法就是我一开始的思路,直接遍历数组计算出每个数出现的次数,可是我这样算的时候越绕越晕,思路很乱,我是改用另一个数组来计算次数,这样思路就清晰很多也快很多各自优势:说不出哪种比较好,这类题目我会先想出她的方法的思路,发现是死路后才会想别的方法,可能这也是我代码量不够的缘故,不管什么题目都只从头开始做,没有那种得心应手的感觉
三、截图本周题目集的PTA最后排名。
四、本周学习总结
1.你学会了什么
1.1C中如何存储字符串?
1,使用字符数组存2,使用字符指针存储字符串
3,,可以把字符串a赋值给字符串b,注意字符串都是以\0结尾的
1.2字符串的结束标志是什么,为什么要结束标志?
字符串都是以\0结尾的1.3字符串输入有哪几种方法?
scanf("%s",i)gets(i)
fgets(i,,)
1.4数字字符怎么转整数,写个伪代码?
定义整数变量integer,i,字符数组ch[10] scanf("%s", ch)输入数字字符 integer=0 for(i=0; ch[i]; i++) if(ch[i]>=0&&ch[i]<=9) integer=integer*10+(a[i]-'0') end i 输出integer
1.516进制、二进制字符串如何转10进制?写伪代码?
十六进制:char a[10] int i,number=0 gets(a)输入字符串 for i=0 to a[i]!='0'遍历数组 if a[i]为数字字符 number=number*16+a[i]-'0' else if a[i]为a到f的十六进制数 number=number*16+a[i]-'a'+10 else if a[i]为A到F的十六进制数 number=number*16+a[i]-'A'+10
二进制:
char a[10] int i,number=0 gets(a)输入字符串 for i=0 to a[i]!='0'遍历数组 number=number*2+a[i]-'0'
2.本周的内容你还不会什么
代码量缺乏,对学习与作业热情下降,正努力改正3.期中考试小结
3.1你认为为什么没考好?
对C语言局限在电脑上的敲代码而缺少纸上的做题训练,对一些基础知识的掌握不够严谨3.2罗列错题
3.3下半学期要怎么调整C的学习?
先端正自己的学习态度并及时完成作业,在这之前努力赶上进度,补齐之前落下的作业!相关文章推荐