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

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

时间:2017-12-10 18:56:30      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:post   关于   [1]   函数   遍历   art   images   加法   应该   

一、PTA实验作业

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

1. 本题PTA提交列表(要提交列表,不是结果)

技术分享图片

2. 设计思路

{
    定义变量i,n,flag,max
    输入字符串数n
    定义数组 num[n]存放每个字符串长度
    定义字符数组 str[n][80]
    for i=0 to i=n-1 { 
        输入str[i];
        计算str[i]长度存于num[i];
        i++; 
        }
    max=num[0];
    for i=0 to i=n-1 {
        if num[i]>max{
            max重新赋值max=num[i];
            记下最长串所在位置flag=i
            }
        }
    输出结果 
} 

3.代码截图

技术分享图片

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

本题没有碰到问题

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

1. 本题PTA提交列表

技术分享图片

2. 设计思路

{
    定义整形变量i,j,n;
    定义字符数组str[5001];
    输入字符个数n;
    输入字符串;
    for i=0 to i=n-1 i++{ 
        if str[i]为‘)‘或‘}‘       
            输出False
            结束程序return 0; 
        if str[i]==‘(‘{
            for j=i+1 to j=n-1 j++{
                if str[j]为‘)‘{
                    令str[i] str[j]都为空字符 
                } 
            }
        }   
        if str[i]==‘}‘{
            for j=i+1 to j=n-1 j++{
                if str[j]为‘}‘{
                    令str[i] str[j]都为空字符 
                } 
            }
        }
    }
    输出 True 
} 

3.代码截图

技术分享图片

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

本题没有碰到问题。
PTA提交列表说明:
0分的答案错误是输出没有大写.
本来我的思路中没有

for i=0 to i=n-1 i++{ 
        if str[i]为‘)‘或‘}‘       
            输出False
            结束程序return 0; 

而是遍历完数组后,再遍历一遍看是不是全为空字符,这样效率很低,写伪代码的时候想到可以直接在第一次遍历是结束

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

1. 本题PTA提交列表

技术分享图片

2. 设计思路

技术分享图片

3.代码截图

技术分享图片

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

碰到的问题:
技术分享图片
技术分享图片
该错误点是因为重新遍历的时候i的初值问题,若令i=0;进入下一次循环时,i的值为1,这样判断就有问题
解决办法:初始化时令i=-1

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

技术分享图片

三、同学代码结对互评

1.互评同学名称:朱杰伟

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

我的代码截图:
技术分享图片

同学代码截图:
技术分享图片

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

  • -不同点:一看我的代码就更长,我的代码通过判断‘(’‘{’和‘)’‘}‘ 是否成对出现,若是,则将两个都换成空字符,相当于连连看,但在遍历是一旦碰到‘}‘‘)‘就判断为错误,因为若是正确的输入顺序一定已经被换成空字符,不会碰到‘}’‘)‘;而杰伟的代码中,分别假设‘(‘‘)‘‘{‘‘}‘为1,-1,2,-2,初始值count=0,通过判断然后加减,一旦count<0,说明出现输入顺序错误。
  • 各自优势:感觉我的代码没有什么优势,杰伟的代码用了数学思维,把问题简化,而我的相比之下更加复杂。
  • 更喜欢哪种代码风格:更喜欢杰伟的代码风格,把问题简化,容易理解。

四、本周学习总结

1.你学会了什么?

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

    int *p;

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

运用在:

    int a[10]={1,2},*p;
    p=a;    //即p=&a[0],*p=1
    p++;    //此时p=&a[1],*p=2

两个指针变量不能相加

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

程序会崩溃
技术分享图片

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

技术分享图片
形参:

int *intpart,float *fracpart

实参应该传地址:

&intpart,&fracpart

指针变量做函数形参能在函数中直接改变实参的值,且能返回多个函数值

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

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

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

{
    int *p,a[10];
    p=a; //p=&a[0]
    p++; //p=&a[i]
    ...
}

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

{
    char *p;
    char a[10];
    p=a; //p=&a[0]
    p++; //p=&a[i]
    ...
}

初始位置在a[0]

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

#include<stdio.h>
void *strcat (char *s1, char *s2);
int main()
{
    char s1[160],s2[80];
        gets(s1);
        gets(s2);
        strcat(s1,s2);
        puts(s1);
    printf("\n");
    return 0;
}
void *strcat (char *s1, char *s2)
{
    char *p=s1;
    while(*p) 
        p ++;
    while(*s2!=‘\0‘){
        *p =*s2;
        p ++;
        s2++;
    }
    *p=‘\0‘;
}

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

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

技术分享图片
本题没有用DveC验证,一看‘==’就选了

3.数组上机考试小结

3.1 那题错了,请罗列?

7-2 jmu-c-十进制转16进制

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

技术分享图片
没有考虑到输入为0的情况。

while(j>0){
        l=j%16;
        if(l<10)
            s[i]=l+‘0‘;
        else
            s[i]=l-10+‘A‘;
        j/=16;
        i++;
        count++;
    }

应该改用do-while循环.

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

标签:post   关于   [1]   函数   遍历   art   images   加法   应该   

原文地址:http://www.cnblogs.com/xzjj/p/8011958.html

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