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


    一、PTA实验作业

    题目1:7-3 找最长的字符串

    1. 本题PTA提交列表

    2. 设计思路

    定义变量n存字符串数,max存最长长度
    定义数组 a[1000]存放字符串,b[1000]存放最长数组,c临时字符
    输入n
    for i=1 to i>n
    
        for j=1 to c=回车
             a[j]=c;
        end j
    
        if j>max
              for k=1 to k>j
                   b[k]=a[k]
              end k
    
        max=j
    end i
    输出The longest is 和最长数组
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明

    • 多种错误 是由于数组定义时没用static定义导致数组没有初始化而错误
    • 答案错误 我将数组扩大十倍后就多通过一个测试点

    题目2:7-5 统计大写辅音字母

    1. 本题PTA提交列表

    2. 设计思路

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明

    • 部分正确:看错题目,将非原音字母看成元英字母导致出错

    题目3:7-12 IP地址转换

    1.本题PTA提交列表

    2. 设计思路

    定义字符数组a存放32位2进制
    定义ip存放数字形式ip
    输入字符串a
    for i=0 to i=32
        ip=a[i]转数字+ip*2
        如果i+1能整除8
            输出ip
            如果i不为32输出.
            ip=0
    end i
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明

    • 本题无误

    二、截图本周题目集的PTA最后排名。

    三、同学代码结对互评

    陈文杰代码 我的代码

    点评:首先在他的输入部分用的是循环结构,而我的是gets语句,我觉得我这么写更加简洁,而且运行效率可能会更高些,其次,在判断是否相同字段时他使用的方法过于冗余,
    而我是采用课堂派上用过的方法,他的方法代码量太大了,而且不好懂,其他的都还行

    四、本周学习总结

    1.你学会了什么?

    1.1指针变量如何定义

    类型 *p
    

    1.2 指针加法运算运用在哪种情况,2个指针变量能否相加?

    可以用在看两个内存直接差多少个内存,不能相加因为地址相加没有意义
    

    1.3 指针不赋初值,直接使用,会出现什么情况,请用DEVC验证,并截图展示?


    程序会奔溃

    1.4 课堂派上关于分离浮点数的整数部分和小数部分那题,请用DEVC验证实现,并在此贴图展示,同时说明哪句是指针变量做函数形参,函数实参应该怎么表示。指针变量做函数形参有什么用处?

    #include<stdio.h>
    void brek(float x,int *intpart,float *floatpart);
    int main(void)
    {
    	int intpart;
    	float number,floatpart;
    	scanf("%f",&number);
    	brek(number,&intpart,&floatpart);
    	printf("%d %f",intpart,floatpart);
    	return 0;
    }
    void brek(float x,int *intpart,float *floatpart)
    {
    	*intpart=x;
    	*floatpart=x-*intpart;
    }
    


    指针变量做函数形参:void brek(float x,int *intpart,float *floatpart)
    函数实参:地址即数组名
    好处:便于操作

    1.5 请把课本的冒泡排序的函数改成指针变量做形参格式,并把代码写在底下,注意用markdown语法渲染

    void bubblde(int *p,int n)
    {
        int i,j,t;
        for(i=1;i<n;i++)
            for(j=0;j<n-i;j++)
                if(*(p+j)>*(p+j+1)){
                    t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;
                }
    }
    
    

    1.6 如何定义一个指针变量指向数组,如何用指针变量表示数组元素?

    int *p;
    int a[10];
    p=a;
    

    表示a[n]=*(p+n)

    1.7 如何定义字符指针指向字符串?指针指向字符串后,初始位置在哪里?

    char *p;
    char a[10];
    p=a;
    

    初始位置在第一个字符

    1.8 利用字符指针操作字符串,如设计函数实现字符串连接,请在此贴图展示代码。说明指针表示字符的方法好处是什么?


    好处:便于操作

    2.本周你不会内容有什么?

    2.1 课堂派错题罗列及如何订正。

    A选项中的*&a不表示地址
    指针未赋初值不能使用

    2.2 其他不会的?打算怎么解决

    • 对于pta字符数组的题目还不是很会,做出来的题目有些思路很乱,打算多和同学讨论多看看别人代码

    3.数组上机考试小结

    3.1 那题错了,请罗列?

    3.2 错题如何订正,为什么错了?

  • 相关阅读:
    JZ-C-36
    JZ-C-35
    JZ-C-34
    JZ-C-33
    JZ-C-32
    JZ-C-31
    JZ-C-30
    JZ-C-29
    JZ-C-28
    JZ-C-27
  • 原文地址:https://www.cnblogs.com/Airoure/p/8012754.html
Copyright © 2020-2023  润新知