C语言博客作业--字符数组-陈张鑫
一、PTA实验作业(4分)
题目1:7-5 查验身份证
1. 本题PTA提交列表(要提交列表,不是结果)
2. 设计思路(伪代码或流程图)
定义变量身份证个数n,合法个数count=0,flag=0,sum=0,及数组quan[],a[999][999],z[]
quan[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}
z[]={'1','0','X','9','8','7','6','5','4','3','2'}
输入n
for i=0 to n {
输入字符串到a[i];
end}
for i=0 to n{
for j=0 to 17 {
判断a[i][j]中是否有不是数字的字符,有的话输出a[i],且count++,flag=1,break
end }
if (flag){flag=0;continue; }//直接判断下一个身份证
for j=0 to 17 {
sum+=quan[j]*(a[i][j]-'0');
end }
判断z[sum%11]!=a[i][17]为真printf("%s\n",a[i]);count++;
sun=0;//重置sum=0
end}
如果count==0则 printf("All passed\n");
end
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
这道题我题目都看不懂,不知道权是什么,后来百度了这道题,参考了网上的代码后发现了用二维数组储存字符的用法,且十分快捷,如定义一个二维数组a[i][j],我们要是要输入一个字符数组时可以直接数到a[1]中,则这些字符就储存于a[1][j]中,调用或者输出也可以直接a[i]来使用,十分快捷。且用在这道题十分的方便。
题目2:7-6 Jack cheng的烦恼2
1. 本题PTA提交列表(要提交列表,不是结果)
2. 设计思路(伪代码或流程图)
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
这题我很快就有了大部分的思路,但是提交后却总是7分,后来我更改了方法,原先是用A做为标志来判断是否
输入对的符号,后来我是用来记录输入的个数,接下来输入的正确的话则减去。最后得到了正确结果,但是我
有一个疑问,就是{(})实际上是错的但是我的代码运行是对的,且测试点也通过了。
题目3:7-7 删除字符串中的子串
1. 本题PTA提交列表(要提交列表,不是结果)
2. 设计思路(伪代码或流程图)
定义变量i,j,l,k及数组S1[99],S2[99]
gets(S1) gets(S2);//输入数组S1,S2
for(i=0;S1[i]!='\0';i++){
for(j=i,k=0;S1[j]==S2[k];j++,k++){//当字符相等时开始进入循环
如果S2[k+1]=='\0'
for(l=i;S1[l]!='\0';l++){
S1[l]=S1[l+k+1];//将删除后的字符存放如原来的字符中
end}
S1[l]='\0';i=-1;
end}
end}
输出字符数组S1
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
第一就是判断含有子串的问题,原先我把题目想的很复杂,也不知道怎么判断是否存在子串,后来恰巧在
课堂派上老师讲解了这类题目, 且for(j=i,k=0;S1[j]==S2[k];j++,k++)这个表达式是十分新颖的,还有遇到的
第二个问题是在删除了数组后重新定义i的时候我把它定义成了0,但是我忽略了这实在一个循环里头,当重
新定义后会使i+1所以应该为-1,这是一个小细节,但是我相信这也是这类题目的小陷阱所以很有意义。
二、截图本周题目集的PTA最后排名。(2分)
三、同学代码结对互评(1分)
1.互评同学名称
徐宏伟
2.我的代码、互评同学代码截图(此处截图核心代码就好,不一定截图全部代码,图上指明是谁的代码。)
徐宏伟:
陈张鑫:
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
我和他代码不同之处在于输入多行身份证的方法,他是运用一个外循环将代码多次输出,而我是运用二维数组可以直接输入
也可以直接输出,如你要输出第i串可以直接用a[i],当对一串字符中的元素进行处理时就可以用a[i][j],所以我觉得这种方法
很巧妙!
四、本周学习总结(3分)
1.你学会了什么?
1.1指针变量如何定义(设计代码可以用markdown代码符号渲染)?
int *p char*p
1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?
运用在数组的位置变化,如P+2表示p在内存中前移两个int的距离。 2个指针变量不能相加
1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?
1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?
1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,注意用markdown语法渲染。
void bubble(int *p,int n)
{
int *i,*j,t;
for(i=1+p;i<p+n;i++)
for(j=p;j<p+n-1;j++)
if(*j>*(j+1))
{
t=*j;
*j=*(j+1);
*(j+1)=t;
}
}
1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?
int *a[i] *a+i
1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?
char *a[i]
或
char *a=" asdfsaf"
初始位置在a[0]
1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?
好处是相当于全局变量 可以返回多个值
2.本周你不会内容有什么?
对于地址的了解不是很深,对于指针与地址相联系时还是不太熟练地使用,还是需要多花点时间来巩固一下。
2.1 课堂派错题罗列及如何订正。
这题其实是指针没赋值
这道题是a是常量不能自增
这题是地址向前进了一位,而我误以为是数组第一个数数值加1
2.2 其他不会的?打算怎么解决
基本上都已经掌握了
3.数组上机考试小结
3.1 那题错了,请罗列?
7-3 jmu-c-输出字符间的字符子串
7-4 数组元素的删除(15 分)
3.2 错题如何订正,为什么错了?
7-3 我是在一个点就是相同的字符,我在上级时2完全不知道什么意思....,后来出来后才知道是如 adfsaa a a 这样的情况。后来调试一下就可以了,还是题目理解部透彻。
7-4 是我时间不够没时间调试了。回宿舍后完成了这题。
C语言博客作业--字符数组-陈张鑫的更多相关文章
- C语言博客作业—字符数组
一.PTA实验作业 题目1:字符串转换成十进制整数 1. 本题PTA提交列表 2. 设计思路 (1)定义i为循环变量,number用于存放每一次转化的结果,flag用于判断是否为负数,p用于修改结果的 ...
- C语言博客作业--字符数组
一.PTA实验作业 题目1:统计一行文本的单词个数 1. 本题PTA提交列表 2. 设计思路 Begin 定义字符型变量ch,pre=' ': 定义整型变量count://用来记录单词个数 count ...
- C语言博客作业字符数组
一.PTA实验作业 7-12 IP地址转换 本题PTA提交列表 设计思路 3.代码截图 7-7删除字符串中的子串 本题PTA提交列表 设计思路 定义字符型数组s[81]储存主串,sub[81]储存子串 ...
- C语言第二次博客作业---分支结构 陈张鑫
一.PTA实验作业 题目1:计算分段函数[2] 本题目要求计算下列分段函数f(x)的值: 1.实验代码 int main(){double x,y; scanf("%lf",&am ...
- C语言第八次博客作业--字符数组
一.PTA实验作业 题目1:查验身份证 1. 本题PTA提交列表 2. 设计思路 定义i,flag=1,z,m[11],a[19] 输入次数n for i=1 to n+1 gets(a) 加权求和在 ...
- C语言博客作业04——数组
1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量 1.2.1学习体会 这几周学习了数组,数组分为三大块:一维数组.二维数组和字符数组.数组相对于之前普通变量的好处就是可以储存数值,方便数据 ...
- C语言博客作业4——数组
0.展示PTA总分 一维数组 二维数组 字符数组 1.本章学习总结 1.1学习内容总结 一维数组知识点: 无论是对一维数组还是二维数组进行应用时,我们对其下标的应用十分广泛. 1:一维数组的输入和遍历 ...
- C语言博客作业04数组
0.展示PTA总分 1.本章学习总结 1.1 学习内容总结 1.int a[10];为定义数组,表示数组有10个数 2.数组的下标都是从0开始,到n-1结束 3.数组里元素的个数不能大于数组的长度 4 ...
- C语言博客作业04—数组
0.展示PTA总分(0----2) 展示3张关于"数组题目集"分数截图. 1.本章学习总结(2分) 1.1 学习内容总结 整理数组这章学习主要知识点,必须包含内容有: (1)数组查 ...
随机推荐
- AI CV 会议2018
(1) NIPS, Conference and Workshop on Neural Information Processing Systems, A类顶会 1987年由联结主义学派创建,每年一 ...
- linux三剑客之一grep
正则表达式(Regular Expression) 目录 起源 正则表达式是什么? 两类基本正则表达式 正则表达式元字符 Linux上文本三剑客 小试牛刀 总结 一.起源 正则表达式这个名词,相信 ...
- [Luogu2973][USACO10HOL]赶小猪
Luogu sol 首先解释一波这道题无重边无自环 设\(f_i\)表示\(i\)点上面的答案. 方程 \[f_u=\sum_{v,(u,v)\in E}(1-\frac PQ)\frac{f_v}{ ...
- canvas练手项目(一)——选取图片
今天无事可做,在春意盎然的下午突发奇想想做一个关于图片处理的在线网页应用.不要问我为什么做这个,因为我想做!关于这个项目,我想基于canvas来实现,canvas是个好东西,我一直很喜欢,就是我没有做 ...
- c#开发wps插件(2)
上一篇,我们谈了插件开发原理,现在该是应用原理的时候了.工欲善其事必先利其器,首先安装wps 2016专业版,然后再开发. 第一步:打开vs2010,新建一个类库项目,项目结构如下: 说明:其中Res ...
- 关于CoordinatorLayout的用法——复杂交互的克星
好久没有写博客了,主要还是任务过多哈.在开发的过程当中,也记录了很多东西,但是技术这个事吧,其实,时效性真的事非常强--就比如说,你昨天还津津乐道的一个难点解决方案,你过个几天再回过头去看它,就会有一 ...
- imageview无法显示图片:java.lang.RuntimeException: Canvas: trying to draw too large(281520000bytes) bitmap
图片太大需要压缩. 压缩方法:http://jingyan.baidu.com/article/cdddd41c3ef41153ca00e162.html 如果特别大(几十M),可以先用在线的图片压缩 ...
- NancyFX 第六章 视图引擎
正如其他的Web工具包,Nancy也有视图的概念,用来描述在浏览器上看到的输出 视图的定义 你可能没有之前没有接触过"视图"的概念,或是仅仅是从其他工具包例如ASP.NET MVC ...
- Python 常用命令
对Python进行软件的安装.卸载和查看,是我们在日常工作中经常要做的事情,有的时候会突然忘记常用的命令,所以在此记录下来: pip 安装软件包 pip install xxx 卸载软件包 pip u ...
- Json技术使用代码示例
json格式细节1 JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScript原生格式,这意味着在JavaScript中处理J ...