C语言字符数组作业
一、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语言字符数组作业的更多相关文章
- 网络1712--c语言字符数组作业总结..
---恢复内容开始--- 作业亮点 1.总体情况 1.大部分同学利用了流程图后,对于思路的理解有了提升. 2.很多同学在总结方面写的很不错,能够罗列问题贴出解决问题,我们能够看到你们的进步 2.作业发 ...
- C语言 字符数组与字符指针比较
C语言 字符数组与字符指针比较 #include<stdio.h> /* 字符数组会在定以后预先分配内存空间字符串是常量所以会直接把字符串拷贝到数组中, 因为数组地址不同,所以不相等· 字 ...
- C语言字符数组超细讲解
看到标题,有不少朋友会想:字符数组不也是数组吗?为什么要单独拿出来讲哩?莫非它是朵奇葩? 哈哈,确实,一起来认识一下这朵数组界的奇葩吧! 一.字符数组的定义.引用.初始化 大家好!我是字符数组,看我的 ...
- [c语言]字符数组、字符串定义
C语言中字符串通常用字符指针和字符数组来定义: char* pS="abcdef"; char s[]="abcdef"; 这两种方式都会在结尾为字符串隐式补结 ...
- 【转】C语言 字符数组与字符串
原文:http://blog.csdn.net/metasearch/article/details/2856097 在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串.总结起来 ...
- c语言字符数组与字符串的使用详解
转自:http://www.jb51.net/article/37456.htm 1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ ...
- c语言字符数组和指针的经典用法
1.字符数组 许多情况下,对字符串的处理使用字符数组会更加方便,比如: 我觉得不改变字符串的原有顺序,对字符串进行删除等操作时,使用字符数组效果会更好. eg:给定字符串(ASCII码0-255)数组 ...
- C 语言字符数组的定义与初始化
1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'} ...
- C语言---字符数组
一.PTA实验作业 题目1:7-2 统计一行文本的单词个数 1. 本题PTA提交列表 2. 设计思路 定义循环变量i,j定义不为空格的字符数count,定义单词数number,i,j,count,nu ...
随机推荐
- js 函数中的 return+匿名函数
今天一个刚学js的朋友给了我一段代码问为什么方法不执行,代码如下: 代码如下: function makefunc(x) { return function (){ return x; } } ...
- python利用jieba进行中文分词去停用词
中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词. 分词模块jieba,它是python比较好用的分词模块.待分词的字符串可以是 unicod ...
- tomcat启动很慢很慢很慢
今天下载tomcat8.5,启动的时候发现非常慢,大概三分钟左右才能启动,网上搜到一个解决方案,在此记录下来 原因: Tomcat 7/8都使用org.apache.catalina.util.Ses ...
- iOS开发--XMPPFramework--用户登录(三)
创了一个XMPP即时通讯交流群140147825,欢迎大家来交流~我们是一起写代码的弟兄~ 我们在第一篇文章中,已经介绍了Openfire服务器的搭建等环境的配置, 第二篇文章中,导入了XMPPFra ...
- iOS工具——Xcode9无证书真机调试
入坑iOS开发这么久,一直都是在模拟器上运行,公司的项目也都有公司的开发者账号进行真机调试.但是很多时候在网上download一些demo想在真机上运行看一下效果的时候都没法成行,今天抽空好好研究和学 ...
- Handsontable的前端分页与数据库分页
Handsontable虽然处理速度很快,但当数据量达到10W+的时候很容易导致浏览器内存泄漏,这时候可以用分页来解决.官网提供了前端分页demo,测试后发现也只能处理低于10W的数据,而且调试的时候 ...
- 【Demo Project】AjaxSubmit+Servlet表单文件上传和下载
一.背景 前段时间公司要求我做一个上传和下载固件的页面,以备硬件产品在线升级,现在我把这部分功能抽取出来作为一个Demo Project给大家分享. 话不多说,先看项目演示 --> 演示 源码 ...
- python集合深浅copy
一,集合. 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. ...
- XeLaTeX中文模板
XeLaTeX对中文的支持很友好,可以直接调用系统已安装字体进行文档的撰写.其中需要引用字体的名字,开始遇到了写问题,经常发现字体未引用,现在大概明白了. 引用字体的时候,如果不加中括号,就需要引用字 ...
- Python3基础教程1——Python的环境搭建
2018年3月8日 当然推荐一个比较系统的教程 http://www.runoob.com/python3/python3-tutorial.html 人家也写的也比我好啦 本教程为新手向的,请大佬跳 ...

