C语言博客作业--字符数组
2017-12-10 15:52
183 查看
一、PTA实验作业
7-1 字符串转换成十进制整数
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
我用flag来监控输出的数是否要用负数表示,但是输出的却是整数,我让输出sum前输出flag
发现flag=0,却输出正数,问题应该出在else-if语句,检查发现并没进入else 的if中,而且sum=0没有特殊讨论
7-12 IP地址转换
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
每个八位二进制都是十进制255? 仔细想255=2^8-1,那不就是11111111的十进制数码,仔细看代码发现每次sum都是加2的n次方,意识到pow(2,n)没乘系数。。。然后在前面添加ip[i]
发现数变得大很多
我再添加一个查看发现
再添加查看pow(2,n)发现这个变量没问题
那就是出在ip[i]上了
发现ip[i]是ASCII码。。。,应该sum=sum+(ip[i]-49)pow(2,n);
7-13 连接两个字符串
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
发现第一个字符串没有全部输出,我在试试另一组字符串
还是第一个字符出现问题
问了同学才知道,strlen()语句只是计算字符除‘\0’以外的的字符数目,第一个for循环控制i的值应该为i<n
二、截图本周题目集的PTA最后排名
三、同学代码结对互评
1.互评同学名称
林岳2.我的代码、互评同学代码截图
我的代码林岳的代码
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
我是用两个数组完成的,在for循环中计算每次循环的字符串的长度大小m,比较m与max的大小,如果m>max进入函数把长的字符存到c数组中,以此类推; 而林岳使用二维数组中一行来存字符串,比较二维数组的列数数来找出最长字符串他的代码看上去思路比较复杂,而我的代码比较易懂,只是我的代码把函数调用放在了for循环中 可能多次调用函数
总体上来讲,我比较喜欢自己的代码,看上去比较不会视觉疲劳
四、本周学习总结
1.你学会了什么?
1.1指针变量如何定义(设计代码可以用markdown代码符号渲染)?
类型名 指针变量名(如int p,char *cp)1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?
比如(*p)++,将指针所指的变量自增;俩个同类型的指针变量可以相减,但是不是相加1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示
无输出,程序崩溃
1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?
1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,注意用markdown语法渲染。
#include<stdio.h> void bubble(int a[],int n); int main() { int n,i; int a[8]; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } bubble(a,n); for(i=0;i<n;i++) printf("%d ",a[i]); return 0; } void bubble(int a[],int n){ int *p=a; int i,j,temp; for(i=1;i<n;i++) for(j=0;j<n-1;j++) if(*(p+j)>*(p+j+1)){ temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } }
1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?
int a[100],*p; p=a; int a[100],*p; p=&a[0];
int a[100],p;
p=a[0];
1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?
char *p="字符串" 初始位置在字符串首个字符1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?
2.本周你不会内容有什么?
2.1 课堂派错题罗列及如何订正。
首先再仔细看一遍题目确定没有理解错题意
然后如果是代码解读的化,可以赋值粘贴到编译器上试看看运行的内容是否自己的思路相同
实在不行找学的比较厉害的同学交流探讨
2.2 其他不会的?打算怎么解决
指针的用法,具体什么情况用指针比较简单方便3.数组上机考试小结
3.1 那题错了,请罗列?
6-2 jmu-c-二维数组转置并按列排序7-4 数组元素的删除
7-1 IP地址转换
3.2 错题如何订正,为什么错了?
6-2还未修正,对于第二个函数不太会弄7-4和7-1 再PTA做了相似的题目,考试不会,时间紧张没写出来