一、PTA实验作业

题目1:7-1 字符串转换成十进制整数

1. 本题PTA提交列表

2. 设计思路

3.代码截图

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

  • 1、一开始我没想到怎么判断正负的问题,输出的结果只有正数,与样例不符合
  • 2、第一次做的时候,我没有在a-f和A-F的字符转换后加10,使结果变小,参考了书上的转换后,我才发现漏了加10

题目2:7-16 Left-pad

1. 本题PTA提交列表

2. 设计思路

- 定义n(所要的长度),i,j(循环变量),m(数组长度),op(填充字符),ch[100000](操作数组)
- 输入n,接一个getchar()吸收回车
- 输入填充字符,接一个getchar()吸收回车
- i=0
- while((ch[i]=getchar())!='\n') i自增
- m=i(储存数组长度),ch[i]='\0'
- if(n>m)
- for(j=0;j<n-m;j++)
- 输出字符
- 输出数组
- end for
- else if(n<m)
- for(j=m-n;j<m;j++)
- 输出数组后n个数
- end for
- else(即n=m) 输出数组

3.代码截图

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

  • 1、我刚开始做的时候没有注意n可以取到10的4次方,数组长度只定义了1000,结果最大n都错了,后来我把数组长度改成了100000
  • 2、

我一直没搞明白为什么样例2是错的,因为我devc的输出是对的,但是我第二天再测试的时候,样例2在devc的输出就错了,我没搞懂为什么,后来我把n=m和n<m的位置换了一下,就全部正确了

题目3:7-20 指定位置输出字符串

1. 本题PTA提交列表

2. 设计思路

- 定义数组op[1000],i,j,k(三者用于循环),flag1,flag2(查找要求字符的位置),op1,op2(要求的字符)
- 输入数组(过程省略)
- 输入op1
- getchar()吸收回车
- 输入op2
- for(j=0;op[j];j++)
- 如果(op[j]==op1) flag1=j
- end if
- end j
- for(k=flag1;op[k];k++)
- 如果(op[k]==op2) flag2=k
- end if
- end k
- for(i=flag1;i<=flag2;i++)
- 输出flag1到flag2间的所有字符

3.代码截图

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

  • 我一开始第二个循环的k是从0开始的,这样会导致flag2有可能会出现在flag1前面,对某些情况不符合

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

三、同学代码结对互评

1.互评同学名称

  • 陈文杰

2.我的代码、互评同学代码截图(此处截图核心代码就好,不一定截图全部代码,图上指明是谁的代码。)

  • 我的代码

  • 文杰同学代码

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

  • 1、文杰同学代码是先把符合16进制的字符找出并转换后储存于新数组中,然后再进行换算;而我是一边找一边进行换算,这一点我觉得我的做法会比较好
  • 2、至于正负的问题上,我觉得文杰同学做法会更好,我花了很大一段代码来判断正负;而文杰同学在输入时就进行判断,效率更高
  • 3、如果判断正负用文杰的方法,换算使用我的方法,那么程序效率会更高

四、本周学习总结

1.你学会了什么?

1.1指针变量如何定义(设计代码可以用markdown代码符号渲染)?

  • 定义指针的一般形式为:类型名 *指针变量名
  • *为指针声明符,不可省去
  • 指针变量的类型是指它所指向的变量的数据类型

1.2指针加法运算运用在哪种情况,2个指针变量能否相加?

  • 定义一个指针p(int p),则(p)++、p=p+1、++*p都表示将指针p所指向的变量的值加1;
  • 定义一个指针p(int p),对指针赋值,则p++不再指向原变量
  • 两个指针不能相加

1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?

  • 程序崩溃,无法运行

1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?

  • 1、指针变量做函数形参:void splitfloat(float x,int *intpart,float *fracpart)

  • 2、函数实参:splitfloat(x,&ip,&fp)实参应该是一个地址

  • 3、用处:通过指针改变指针所指向的白能量的值

1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,注意用markdown语法渲染。

void bubble(int *p,int n)
{
int i,j,t;
for(i=1;i<n;i++)
for(j=0;j<n-i;j++)
if(*p>*p+1)
{
t=*p;
*p=*p+1;
*p+1=*p;
}
}

1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?

  • 假设有一个数组a[10],有一个指针*p,则p=a或p=&a[0]都能使指针p指向数组a[10]的初始地址,p+1即为下一个变量的地址,以此类推
  • 假设指针p指向数组a[10]第一个变量,则p表示a[0],(p+1)表示a[1],以此类推

1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?

  • 举个例子:char *sp=“string”
  • 指针会指向字符串的首字符

1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?

2.本周你不会内容有什么?

2.1 课堂派错题罗列及如何订正。

  • 1、实现字符串的连接

    我一开始不知道怎么连接,现在明白了怎么连接了

  • 2、

    scanf函数后面的参数应该是一个地址,所以*p的是错的,应该是p

2.2 其他不会的?打算怎么解决

  • 不会的问题,就要课堂多听,多向人请教,可以适当的百度了解自己不会的地方,当然最主要还是自己要理解透彻才能掌握好

3.数组上机考试小结

3.1 那题错了,请罗列?

  • 1、函数题的 jmu-c-二维数组转置并按列排序
  • 2、编程题的 7-4 数组元素的删除

3.2 错题如何订正,为什么错了?

  • 1、函数题的 jmu-c-二维数组转置并按列排序

    错误原因:我试着做了一次,觉得有点麻烦,就先跳过去,结果被后面的题耽搁了,来不及回来思考怎么做
  • 2、编程题的 7-4 数组元素的删除

    错误原因:我一开始的想法是移动数组。然后输出需要的部分,不过我这样做打乱了数组,输出结果不正确,加上时间不够,来不及更改

C语言字符数组作业的更多相关文章

  1. 网络1712--c语言字符数组作业总结..

    ---恢复内容开始--- 作业亮点 1.总体情况 1.大部分同学利用了流程图后,对于思路的理解有了提升. 2.很多同学在总结方面写的很不错,能够罗列问题贴出解决问题,我们能够看到你们的进步 2.作业发 ...

  2. C语言 字符数组与字符指针比较

    C语言 字符数组与字符指针比较 #include<stdio.h> /* 字符数组会在定以后预先分配内存空间字符串是常量所以会直接把字符串拷贝到数组中, 因为数组地址不同,所以不相等· 字 ...

  3. C语言字符数组超细讲解

    看到标题,有不少朋友会想:字符数组不也是数组吗?为什么要单独拿出来讲哩?莫非它是朵奇葩? 哈哈,确实,一起来认识一下这朵数组界的奇葩吧! 一.字符数组的定义.引用.初始化 大家好!我是字符数组,看我的 ...

  4. [c语言]字符数组、字符串定义

    C语言中字符串通常用字符指针和字符数组来定义: char* pS="abcdef"; char s[]="abcdef"; 这两种方式都会在结尾为字符串隐式补结 ...

  5. 【转】C语言 字符数组与字符串

    原文:http://blog.csdn.net/metasearch/article/details/2856097 在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串.总结起来 ...

  6. c语言字符数组与字符串的使用详解

    转自:http://www.jb51.net/article/37456.htm 1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ ...

  7. c语言字符数组和指针的经典用法

    1.字符数组 许多情况下,对字符串的处理使用字符数组会更加方便,比如: 我觉得不改变字符串的原有顺序,对字符串进行删除等操作时,使用字符数组效果会更好. eg:给定字符串(ASCII码0-255)数组 ...

  8. C 语言字符数组的定义与初始化

    1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'} ...

  9. C语言---字符数组

    一.PTA实验作业 题目1:7-2 统计一行文本的单词个数 1. 本题PTA提交列表 2. 设计思路 定义循环变量i,j定义不为空格的字符数count,定义单词数number,i,j,count,nu ...

随机推荐

  1. mongodb在windows下安装启动

    mongodb安装 mongodb配置 创建几个文件夹具体如下:数据库路径(\data\db\目录).日志路径(\data\log\目录)和日志文件(mongod.log文件)c:\data\log\ ...

  2. 【BZOJ2301】【HAOI2011】Problem B(莫比乌斯反演)

    [BZOJ2301][HAOI2011]Problem B(莫比乌斯反演) 题面 Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y ...

  3. 【SDOI2009】HH去散步(矩阵快速幂)

    题面 题目描述 HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因为HH是 ...

  4. [BZOJ2326] [HNOI2011] 数学作业 (矩阵乘法)

    Description Input Output Sample Input Sample Output HINT Source Solution 递推式长这样:$f[n]=f[n-1]*10^k+n$ ...

  5. java 压缩文件

    package folder; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundExcept ...

  6. 基于fitnesse浅析waferslim引擎

    最近在用fitnesse框架做自动化测试,简单总结一下,后边再补充内容. 1.fitnesse简介:后续补 略,见官网 http://www.fitnesse.org/ 2.waferslim引擎之p ...

  7. Vim修炼秘籍之语法篇

    前言 少年,我看你骨骼精奇,是万中无一的武学奇才,维护世界和平就靠你了,我这有本秘籍<Vim修炼秘籍>,见与你有缘,就十块卖给你了! 如果你是一名 Vimer,那么恭喜你,你的 Vim 技 ...

  8. 本站已稳定运行了XX天,网页时间显示功能实现方法

    这个是我昨晚上添加的效果, 分为三个部分: 1.本站已稳定运行了多少天的实现: 直接把下面代码复制到后台你想添加的位置即可. 1 2 3 4 5 6 7 8 9 本站已稳定运行了 <strong ...

  9. 【Unity3D与23种设计模式】组合模式(Composite)

    前段时间在忙一个新项目 博客好久没有更新了 GoF中定义: "将对象以树状结构组合,用以表现部分-全体的层次关系.组合模式让客户端在操作各个对象或组合时是一致的." 是一致的意思就 ...

  10. 关于Roll A Ball实例练习记录

    学习中不段进步! 游戏思路:通过键盘控制白色小球,让它"捡起"柠黄色方块,捡起一个加1分,全部捡起游戏胜利! 游戏对象: Ground:绿色地面 player:  小球 Obsta ...