一、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()语句只是计算字符除‘ ’以外的的字符数目,第一个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做了相似的题目,考试不会,时间紧张没写出来