码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-12-10 12:43:44      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:void   使用   ++   if语句   运用   ges   好处   main   字符串转换   

一、PTA实验作业

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

1. 本题PTA提交列表

技术分享图片

2. 设计思路(伪代码或流程图)

int i,j;char a[80],b[80];int flag1=0,flag2=0;long number;其中flag2为是否有负号的判断标志,flag1为输出结果正负的判断标志
输入以’#‘结束的字符串a[]
遍历数组a[i],  滤去非16进制数
      如果a[i]==‘-‘&&flag2==0  flag1=1;
      如果为16进制数,b[j]=a[i] ;   flag2=1    ;  j++;
结束符b[j]=‘\0‘;
将新字符串逐个转换,存放在number中
如果flag1==1,输出0-number
否则    输出number
end       

3.代码截图

技术分享图片

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

  • 一开始没有设置判断其正负的标志,输出结果都为整数
    技术分享图片
  • 后来设置了一个标志flag,答案部分正确,通过思考发现,只要字符串中只要有负号,结果都是负的,因此,再设置另一个标志,判断负号是否出现在第一个16进制数前
    技术分享图片
    技术分享图片
  • 设置flag1和flag2,用两个if语句,如果在负号出现前已经有16进制数,flag2=1;要令flag1=1,需同时满足a[i]==’-‘且flag2=0;得到正确结果;
    技术分享图片

    题目2:7-2 统计一行文本的单词个数

    1. 本题PTA提交列表

    技术分享图片

    2. 设计思路(伪代码或流程图)

    技术分享图片

    3.代码截图

    技术分享图片

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

  • 提交显示段错误和运行时错误,试了很多改正,最后发现数组长度太小,导致错误
    技术分享图片
  • 改正后得到正确答案

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

    1. 本题PTA提交列表

    技术分享图片

    2. 设计思路(伪代码或流程图)

    char s[32];int a[4]; int j=0,count=-1;sum=0,i
    输入数组s[]
    遍历数组s[]
     count++;
     sum=sum+(s[i]-48)*pow(2,7-count);
     如果count==7
          a[j]=sum;j++;count=-1;sum=0;
          continue;
    按格式输出a数组

    3.代码截图

    技术分享图片

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

  • 一开始输入字符串用gets(),在Dev c上运行可以,但是提交PTA是显示运行时错误
    技术分享图片
    技术分享图片
  • 后改用scanf("%s",)输入,答案就正确,鉴于两者的输入差别,应选择用scanf
    技术分享图片

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

    技术分享图片

    三、同学代码结对互评

    1.互评同学名称

  • 朱杰伟

    2.我的代码、互评同学代码截图

  • 我的代码
    技术分享图片
  • 杰伟的代码
    技术分享图片

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

  • 区别:我是先判断每个元素是否在A到Z的范围,如果是,再判断它是否为元音,不是则count++; 而杰伟是判断元素是否为元音字母,否则,再判断它不是空格或感叹号,且又在A到Z之间,count++;
  • 我更喜欢自己的代码,缩小范围,逐步判断,杰伟的代码没什么错误,只是思路上不一样而已。

    四、本周学习总结

    1.你学会了什么?

    1.1指针变量如何定义(设计代码可以用markdown代码符号渲染)?

    指针变量定义时要使用指针声明符*,例如

    int *p;        char *q;      char *p,*q;

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

  • 指针加法运用在其指向的地址元素时,例如输入数组时

    int *p,a[10];
    p=a;
    for(i=0;i<10;i++,p++)
    scanf("%d",*p);
  • 指针之间可以相减,但不可以相加:两个同一类型的指针变量是可以相减的,他们的意义表示两个指针指向的内存位置之间相隔多少个元素(注意是元素,并不是字节数)

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

  • 程序崩溃过不了
    技术分享图片

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

    技术分享图片
  • 指针变量做函数形参:void splitfloat(float x,int intpart,float fracpart)
  • 函数实参:splitfloat(number,&intpart,&fracpart)
  • 用处:可以在函数中对实参进行修改,同时可以返回多个返回值;

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

    #include<stdio.h>
    void bubble(int *a,int n);
    int main()
    {
    int n,a[8];
    int i;
    scanf("%d",&n);
    for(i=0;i<n;i++)
       scanf("%d",&a[i]);
    bubble(a,n);
    for(i=0;i<n;i++)
       printf("%3d",a[i]);
    return 0;
    }
    void bubble(int *a,int n)
    {
    int i,j,t;
    for(i=1;i<n;i++)
       for(j=0;j<n-1;j++)
          if(*(a+j)>*(a+j+1)){
            t=*(a+j);
            *(a+j)=*(a+j+1);
            *(a+j+1)=t;
          }
    }

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

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

    此时p为指向数组a的指针。*(p+n) (n=0,1,2......9)可表示数组元素。

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

    char *p;
    char str[10] = "afjkfdhsjk";
    p = str;

    指针p指向字符串str的首地址.

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

    技术分享图片
  • 字符串指针只占用一个可以存放地址的内存单元,存储字符串首字符的地址,而不是将字符串放到字符指针变量中去,总之,字符串指针可以指向一个不需要分配内存的地址

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

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

  • 拆分实数和整数的部分,自定义函数void splitfloat(float x,int intpart,float fracpart)
    对指针的应用不熟练,后来看翁恺视频和书本订正;
  • 技术分享图片
    *p=a+3;表示p的首地址是a[3],++p后,应该指向a[4]

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

  • 查看书本,巩固基础知识,自己尝试着去做,实在没办法再请教同学,老师。

    3.数组上机考试小结

    3.1 那题错了,请罗列

  • 技术分享图片
  • 技术分享图片
  • 技术分享图片

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

  • 时间不够,在前两题函数题耗费了太多时间,导致后面两题题目都没来得及看,编程第二题题目没有看透,思路没正确,整题也就废了,希望考完后,冷静思考可以做出来,感觉自己无论是从思维还是编程能力还是找错能力都很差,这些没提高,成绩也就没戏了吧。

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

标签:void   使用   ++   if语句   运用   ges   好处   main   字符串转换   

原文地址:http://www.cnblogs.com/mayifang/p/8011298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!