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 错题如何订正,为什么错了?

  • 还是没学扎实,只学了表面的皮毛
  • 再做一遍考试题,不会的地方再去问问写对的人,比较一下别人的代码,寻找最合适自己
posted @ 2017-12-10 22:28  折原临也  阅读(313)  评论(3编辑  收藏  举报