zoukankan      html  css  js  c++  java
  • 第五周编程总结

    一、作业

    这个作业属于哪个课程 C语言程序设计ll
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2824)
    我在这个课程的目标是 掌握字符(串)数组的相关知识
    这个作业在哪个具体方面帮助我实现目标 这次作业让我大概了解了使用字符串编程,加强了进一步的学习
    参考文献 https://www.jb51.net/article/37456.htm)

    预习题

    7-1 统计一行文本的单词个数

    本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。

    输入格式:
    输入给出一行字符。

    输出格式:
    在一行中输出单词个数。

    输入样例:
    Let's go to room 209.
    输出样例:
    5

    1、实验代码

    #include<stdio.h> 
    int main()
    {
        int n=0;
        char a,m=' ';
        while(a!='
    '){
            scanf("%c",&a);
            if(a==' '&&m!=' '||a=='
    '&&m!=' '){
                n++;
            }
            m=a;
        }
        printf("%d",n);
        return 0;
    }
    

    2、设计思路

    3、本题调试过程碰到问题及解决办法:

    问题如下:
    1.以空格开头会算一个单词。
    2.结尾没有空格所以最后一个单词没加。
    解决办法:将if(a' '&&m!=' '){改为if(a' '&&m!=' '||a==' '&&m!=' '){,将第5行m改为m=' ',将11行改为m=a;,问题得以解决。

    4、运行结果截图:

    基础题

    7-1 英文单词排序

    本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。

    输入格式:
    输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。

    输出格式:
    输出为排序后的结果,每个单词后面都额外输出一个空格。

    输入样例:
    blue
    red
    yellow
    green
    purple

    输出样例:
    red blue green yellow purple

    1、实验代码

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h> 
    int main (void)
    {
        FILE*fp;
        char  ch[20][10],a[20];
        int h,l,n;
        if((fp=fopen("D:\helei.txt","a+"))==NULL){
            printf("File open error!
    ");
            exit(0); 
        }
        while(1){
            fscanf(fp,"%s", ch[n]);
            if(ch[n][0]==','){
                break;
            }
            n++;
        }
        for(h=0;h<n-1;h++)
            for(l=0;l<n-1;l++)
            {
                if(strlen(ch[l])>strlen(ch[l+1]))
                {
                    strcpy(a,ch[l]);
                    strcpy(ch[l],ch[l+1]);
                    strcpy(ch[l+1],a);
                }
            }
            fprintf(fp,"
    ",ch[h]);
            for(h=0;h<n;h++)
            {
                fprintf(fp,"%s ",ch[h]);
            }
        if(fclose(fp)){
            printf("Can not close the file!
    ");
            exit(0);
    }
    }
    

    2、设计思路

    3、本题调试过程碰到问题及解决办法:

    根据提示以及运行结果,仔细检查代码后发现第14、15行中应为<n-1,否则循环会进行到字符为' '才结束,从而导致答案错误,修改后问题得以解决

    4、运行将结果截图

    预习题

    (1)预习的主要内容

    指针变量的含义:专门用来存放变量地址的变量,用来实现间接访问;
    指针的定义:类型名 * 指针变量名;
    指针变量的赋值:指针的赋值是地址,int *p=&i。

    (2)完成情况截图

    二、学习进度条

    周/日期 这周所花的时间 代码行数 学到的知识点简介 目前比较迷惑的问题
    2/25-3/3 48h 45 数组的认识及用法 数组长度的理解
    3/4-3/10 36h 37 编写程序时处理文件 fscanf与fprintf的具体用法
    3/11-3/17 46h 55 定义文件,以及文件的导入导出和读写 二维数组的用法、上三角的判断及文件的处理
    3/17-3/22 15h 66 选择排序法、二分查找法 不清楚选择排序法和冒泡排序法的区别
    3/25-3/29 56h 74 判断回文,字符串的用法,预习了指针的用法 对于指针还是有许多不明白的地方

    3、学习感悟

    本周学习了判断回文,和一维字符数组和字符串的使用,字符串的学习还算简单,这一周对我而言还是有许多的提升,这周老师还主要给我们讲了流程图的画法,必须要还有清晰的思路,我们也要先将流程图画出来,这样有助于我们做题。还有这周预习了指针,这个还是有许多的问题。下周继续加油,坚持就是胜利!!!

    4、结对编程感想

    结对编程已经开始几周了,但是我们有人对于分组有些意见,有人觉得自己的队友懒,不想与其结对,也有一些人不熟悉,但是我人为结对还是很有必要的,因为只有结对才能发现自己发现不了的错误,这样才能有更大的提升,我希望我的队友可以更加的积极一点!!!

  • 相关阅读:
    Stream概念的理解
    nodejs进程间通信
    nodejs多进程spawn execFile exec fok方法的区别
    socket这个名词的理解
    Object.defineProperty方法总结
    git中HEAD^和HEAD~区别
    http常见的9种方法
    java怎么建立JAVA工程项目?
    树莓派mjpg-stream摄像头监控
    制作OS X 10.9 Mavericks 安装U盘
  • 原文地址:https://www.cnblogs.com/zx666/p/10623761.html
Copyright © 2011-2022 走看看