C语言博客作业--字符数组
一、PTA实验作业
题目1:7-1 字符串转换成十进制整数
1. 本题PTA提交列表
2. 设计思路
定义数组str存放初始字符串,line存放十进制字符串,number表示十进制数,flag为判断标志
遍历数组,while((str[i]=getchar())!='#') i++输入初始字符串,str[i]='\0'将结束符存入数组
for i=0 to str[i]=‘\0’从0到结束符
如果k=0并且str【i】为‘-’,flag自增
判断字符串是否为十六进制数,是的存放在line【k】中
在新数组line中存放结束符
定义number初值为0
for i=0 to line【i】=‘\0’,将十六进制数转为十进制数
if(line[i]>='0'&&line[i]<='9') number=number*16+line[i]-'0';数字符转为10进制
else if(line[i]>='a'&&line[i]<='f') number=number*16+line[i]-'a'+10;小写字母转为10进制
else if(line[i]>='A'&&line[i]<='F') number=number*16+line[i]-'A'+10;大写字母转为1-进制
如果flag和number都不等于0;输出-number
否则输出number
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- 判断负数的条件一直没有写对,参考完同学的代码后写对
题目2:7-2 统计一行文本的单词个数
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- 字符串的长度定义的小,运行时错误,count自增的判断条件开始时一直写的flag=1,看群上同学讨论后改正
题目3:7-3 找最长的字符串
1. 本题PTA提交列表
2. 设计思路
定义N为输入的字符串数目,max存放最大的字符串长度,max初值为0 ,temp为最长字符串的下标 ,定义二维数组str便于输入字符串 ,定义数组a存放每一个字符串的长度
输入N
for i=0 to N 输入N个字符串
for i=0 to N a[i]=strlen(str[i] 把每个字符串的长度存放在数组a中
for i=N-1 to 0 将a中每个字符串的长度与max比较,大的赋给max,记下下标temp=i
输出最长的字符串
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
- 一开始一直无法输入xiang这个字符串,后来定义了一个二维数组,才输进去
二、截图本周题目集的PTA最后排名
三、同学代码结对互评
1.互评同学名称
王洪尉
2.我的代码、互评同学代码截图
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
- 王洪尉结束符打错了,导致段错误,个人感觉我的代码效率高一些也比较简洁
四、本周学习总结
1.你学会了什么?
1.1指针变量如何定义
类型名 *指针变量名(类型名指定变量所指向变量的类型,*为指针声明符)
1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?
- (p)++表示将指针所指向的变量加1,p++等价于*(p++),下移整数单位
- int *p=a; 则 *p为a[0] , *(p+1)为a[1]
- 两个指针变量不能相加
1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?
程序崩溃
1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?
- int *i 和 float *f 将指针i和指针p作为形参.
- 实参用地址来表示.
- 直接改变内存从而改变实参的值.
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++,p++)
if(*p>*(p+1)) {
t=*p; *p=*(p+1); *(p+1)=t;
}
}
1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?
int a[80],*p;
p=a;(或者p=&a【0】)
1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?
- 例如:char *sp=“point”
- 初始位置为字符串第一个元素的地址
1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?
对主函数的数据传递更直接
2.本周你不会内容有什么?
2.1 课堂派错题罗列及如何订正。
指针预习作业第一题拆分实数的整数与小数部分,参照上面总结1.4
指针与数组预习作业
- 1.阅读程序题 在第二个循环前给指针赋初值p=a
- 2.填空题
p+n max<*q num - 3.简答题
2.2 其他不会的?打算怎么解决
PTA字符数组第四题,第八题,第九题。查资料,看大佬们的代码
3.数组上机考试小结
3.1 那题错了,请罗列?
考得很差都错了
3.2 错题如何订正,为什么错了?
- 还是没学扎实,只学了表面的皮毛
- 再做一遍考试题,不会的地方再去问问写对的人,比较一下别人的代码,寻找最合适自己