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

  • 相关阅读:
    Elkstack2.0部署
    ZABBIX自定义用户KEY与参数USERPARAMETERS监控脚本输出
    elasticsearch 管理工具
    指定时间开启、结束定时器
    异步的作用
    快速生成几百万条测试数据
    查看查询索引
    蠕虫复制
    导出数据库
    header
  • 原文地址:https://www.cnblogs.com/soyam/p/8016568.html
Copyright © 2020-2023  润新知