第五周编程总结

一、作业

这个作业属于哪个课程 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、结对编程感想

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

原文地址:https://www.cnblogs.com/zx666/p/10623761.html