zoukankan      html  css  js  c++  java
  • C语言博客作业--字符数组

    一、PTA实验作业

    题目1:Jack cheng的烦恼2

    流程图:

    1. 本题PTA提交列表

    2. 设计思路

    定义变量n,i,t,n存放括号个数,i作为字符串的角标,t作为辅助的判断变量。
    输入n的值
    for i=0 to n
    遍历字符串a[i]
    end for
    for i=0 to n
    计算每个括号的数量
    end for
    if(count[0]!=count[1]||count[2]!=count[3])//判断能配对的括号个数是否相等
    输出False
    else
    if(a[0]!='('||a[0]'{')//如果第一个括号为')'或者'}'
    输出False
    else
    for i=0 to n
    if(a[i-1]
    '('&&(a[i]'}'||a[i]'{'))
    else if(a[i-1]'{'&&a[i]')')
    else if(a[i-1]'}'&&a[i]'{')
    输出False
    else
    t=1,跳出循环
    输出True

    3.代码截图


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

    • 本题我写它的原因不是因为它调了很多次才正确,而是我现在写正确了,但是还是不明白,为什么正确,我打这道题有一点点的取巧合,所以希望老师讲解下。

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

    1. 本题PTA提交列表

    2. 设计思路

    定义变量i,count,m,i作为字符串的角标,count存放计算后单词的数量,m存放输入字符串中字符的个数
    定义变量ch[1000],存放字符
    gets(ch);//输入字符串。
    m=strlen(ch);
    if(ch[0]' ') //判断第一个字符是否为空格
    count=0;
    else
    count=1;
    for i=0 to m-1
    if(ch[i]
    ' ' && ch[i+1]!=' ')
    计算单词的个数
    printf("%d",count);

    3.代码截图

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

    • 贴这道题,主要是为了记录下第一次自己使用函数的库函数的感觉,库函数非常的方便而且省时;在开始写这道题目的时候我并没有想到去用库函数,我只是想用学过的函数把答案给运行出来,但是写了很多次还是不行,知道星期四晚上作完预习作业后,我发现了库函数的妙用,于是我就用了库函数,很快就出来了。

    题目3:删除字符串中的子串

    1. 本题PTA提交列表

    2. 设计思路

    定义变量i,s,j,count,flag=0,t,n;i,j同为下角标,flag和count作为辅助的判断变量,s为字串中字符的个数
    定义变量a[800],b[800]
    gets(a);//遍历字符串
    gets(b);
    s=strlen(b);//计算字符数字b中元素个数。
    n=strlen(a);
    while(flag!=1)
    for i=0 to n
    判断连续的a[i]是否会等于b[i]
    if(counts)
    删除主串中含有的连续的字串,直到没有
    end for
    if(n
    0)//如果主串中的字符删除完了
    printf("");
    else
    输出删除完成的主串

    3.代码截图

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

    • 本题同上题一样都使用了库函数,在Devc++上当我输入一个字符串和子串的时候,会出现死循环,我找了很久,才发现flag没有赋初值0,使得循环不断的进行,而且在循环的时候每次循环都没有把flag的值初始化,这使得死循环再次出现,然后有调试了下,发现了错误,最后改正过来。

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

    三、同学代码结对互评

    1.互评同学名称

    • 戴洁

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

    • 我的代码:

    • 戴洁的代码:

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

    • 从整体上来看,我的代码还是比较简洁的,那是因为我用了库函数,库函数相当一个计算字符串的循环函数,而且我们俩从俩个不同的角度分析出怎样计算单词数,虽然我的代码比较的简洁,但是我还是更喜欢戴洁的代码,因为我觉得她的代码十分的基础,很适合我们这总基础不好的人,而我我的代码就有点偏进阶了,虽然掌握了新的知识,但是希望下次还是可以用对方类似的代码解题的。

    四、本周学习总结

    1.你学会了什么?

    1.1指针变量如何定义?

    定义指针变量的一般形式: 类型名 *指针变量名
    一个指针变量指向数组:p=a,让整型指针变量p等于数组a的首地址

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

    指针指向数组时,递增表示指针下移
    2个指针变量不能相加

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

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

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

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

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

    int *p;
    int a[80];

    指针变量指向数组

    • p=&a[0]
    • p=a

    用指针变量表示数组元素

    • p=a+i
    • p=&a[i]

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

    char *p;
    char a[80];

    • 初始位置:首地址。

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

    • 字符指针操作字符串的好处是,字符指针是不确定的,十分的灵活,如果在循环结束后没有将字符指针重新赋初值,那将会造成系统崩溃的后果。

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

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

    • 这道题答得有点离谱,我完全把它当成数型指针来看待了,所以得0分。

    • 在现在的我看来,这道题也是十分简单的,但是那时的我。。,哎!

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

    • 把不会的题目截图下来,去问学姐学长,然后把改过的过程也截图下来,同时放在一个文档里,在考试周可以拿出来看看,避免再犯错。

    3.数组上机考试小结

    3.1 那题错了,请罗列?

    • 这道IP地址的题目老师在上课的时候是讲过的,上课也写出来了,但是呢到了考试,就写不来了,在考试的时候我遇到的问题是输入的32位二进制数,在电脑中把他当成了一个数字,这使得我还再输入31个才可以输出,但是我却一直没发现是定义变量的时候把char定义成了int,这就使得做题一次又一次的错。

    • 这道题,我说了都不好意思,我知道可以用小x输出,但是就是没有试大X我以为没这么简单的,可是事实就是这么简单!!!
  • 相关阅读:
    关于this指向思考
    (转) 那些无用的人----《人类简史》读后感
    常见数组&字符串API及其应用场景总结
    每当十一过了,总让我想起新年快了
    JavaScript笔记之数组 keyword(存储和释放&堆栈 & 按值 引用)
    关于Switch结构利用
    ios GCD同步异步
    IOS 实现TXT文本自动识别编码的方法
    iOS开发网络篇之文件下载、大文件下载、断点下载
    ios 自定义NSError
  • 原文地址:https://www.cnblogs.com/bigll666/p/8018308.html
Copyright © 2011-2022 走看看