C语言博客作业--字符数组

一、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做了相似的题目,考试不会,时间紧张没写出来

posted @ 2017-12-10 15:52  Soyam  阅读(314)  评论(0编辑  收藏  举报