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


    一、PTA实验作业

    题目1:7-1 字符串转换成十进制整数

    1.本题PTA提交列表

    2.设计思路

    定义变量i=0判断有效的字符个数,flag=0判断正负,a[998]储存字符,b=0代表位数
    定义长整型变量total计算答案
    定义字符型变量ch判断字符有效性
    for(;;)
    如果ch=='-'并且i==0
    flag=1
    输入ch 
    如果ch<'9'并且ch>'0'
    a[i]=ch-'0',i++转为数字并且有效字符个数加1
    如果ch<='f'并且ch>='a'
    a[i]=ch-'a'+10;i++; 转为数字并且有效字符个数加1
    如果ch<='F'并且ch>='A'
    a[i]=ch-'A'+10;i++  转为数字并且有效字符个数加1
    如果输入ch=='#'
    end
    for i=i-1 to i=0
    total=total+a[i]*pow(16,b)
    b++
    如果flag=1
    total=-total转为负数
    printf("%ld",total)
    
    

    3.代码截图

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

    1.没有将结果定义为长整形变量导致答案错误
    2.字符型数组定义长度不够导致段错误

    题目2:7-6 Jack cheng的烦恼2

    1.本题PTA提交列表

    2.流程图


    3.代码截图

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

    本题除了漏打;以外无明显错误

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

    1.本题PTA提交列表

    2.设计思路

    定义变量int i=0,j=0,k=0,a1=0,b1=0,c1,flag=0,flag2=0;
    定义字符型变量 a[50],b[50],c[50];
    while((a[i]=getchar())!=' ')
    {i++;}输入第一个数字 
    a[i]='';
    while((b[j]=getchar())!='
    ')
    {j++;} 输入第二个数字、
    b[j]='';结束字符 
    for i=i-1 to i=0
    a1=a1+((a[i]-'0')*pow(10,k));k++; 
    如果a[i]>'9'或者a[i]<'0 
    flag=1;
    end
    for j=j-1 to j=0
    b1=b1+(b[j]-'0')*pow(10,k);k++;
    如果b[j]>'9'||b[j]<'0' 
    flag2=1;
    如果 a1>1000或者a1<1 
    flag=1
    如果 b1>1000或者b1<1 
    flag2=1
    c1=a1+b1
    如果flag1=1并且flag2=0
    printf("? + %d = ?",b1);
    如果flag2=1并且flag=0
    printf("%d + ? = ?",a1);
    如果flag==1并且flag2==1
    printf("? + ? = ?");
    如果flag==0并且flag2==0
    printf("%d + %d = %d",a1,b1,c1);
    

    3.代码截图


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

    1.未考虑边界问题导致部分正确
    2,多个空格的情况没有考虑,将第一个字符判断结束条件改为空格,第二个条件改为回车得以解决

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

    PTA排名

    三、同学代码结对互评

    1.互评同学名称

    吴军霖

    2.我的代码、互评同学代码截图(此处截图核心代码就好,不一定截图全部代码,图上指明是谁的代码。)

    我的代码

    吴某的代码

    3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

    我的代码是输入完后再计算结果的,吴某则是在输入的过程中计算结果的,他的代码变量少并且简短,所以更好。

    四、本周学习总结

    1.你学会了什么?

    1.1指针变量如何定义?

    在变量名字前加*代表指针

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

    用于指针指向数组,指针自增表示数组的下一个,如a代表a[0],a++后,a代表a[1]
    不能相加

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



    出现随机数字

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



    指针变量做函数形参 void spllitfloat(float x,int* intpart,float* fracpart)
    函数实参spllitfloat(x,ip,fp);
    可以在函数中改变主函数中变量的值

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

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

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

    int a[10],int p=a
    数组元素用
    p表示

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

    char *p,str[6]={hello}; p=str;
    初始位置为str[0]

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


    更简短

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

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


    b选项中应该是scanf("%d",p);p代表地址。

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

    利用百度或者询问同学。

    3.数组上机考试小结

    1.刚开始做题时思路很乱浪费了很多时间,以至于做题时间不够,需要多加练习。
    2.有些题目调试花了较多时间,也需多加练习

    3.1 那题错了,请罗列?

    编程题第二题,没有思路,用了输出%x的方法

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

    应该用除以16求余数的方法,逐渐求得结果,并用if语句将数字转为字符,将大于9的数字转为字母

  • 相关阅读:
    Apache的Order Allow,Deny 详解
    apache的AllowOverride以及Options使用详解
    安装启动apache2.4后报Invalid command 'order', perhaps misspelled or defined by a module not included
    前端常见跨域解决方案(全)
    php面试宝典
    php面试题2018
    nginx负载均衡的5种策略
    多台服务器共享session问题
    小程序定义并使用类
    微信小程序真机预览接口不到数据,打开调试确能请求到
  • 原文地址:https://www.cnblogs.com/chenwenjie/p/8011634.html
Copyright © 2020-2023  润新知