zoukankan      html  css  js  c++  java
  • 2019春第五周作业

    一、本周作业

    作业头

    这个作业属于哪个教程 C语言程序设计Ⅱ
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/2825
    我在这个课程的目标是 判断回文,文件指针
    这个作业在哪个具体方面帮助我实现目标 一维字符数组的应用,使用字符串编程
    参考文献 C语言程序设计判断回文、学生成绩文件统计

    预习题

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

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

    输入格式:

    输入给出一行字符。

    输出格式:

    在一行中输出单词个数。

    输入样例:

    Let's go to room 209.
    

    输出样例:

    5
    

    1、实验代码

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main(void)
    {
      FILE * fp; 
      int m,i,count=0;
      char a[1000];
      
      if ((fp=fopen("E:\C语言\dengbo.txt","a"))==NULL)
      {
      	printf("File open error!
    ");
      	exit(0);
      }
      
      gets(a);
      m=strlen(a);
      
      if(a[0]!=' ')
    	{
    		count=1;
    	}
      for(i=0;i<m-1;i++)
      {
    	  if(a[i]==' ' && a[i+1]!=' ')
    		  count++;
      }
      printf("%d",count);
      fprintf(fp,"
    %d",count);
      if (fclose(fp))
      {
      	printf ("Can not close the file!
    ");
      	exit (0);
      } 
      return 0; 
    }
    

    2、设计思路

    3、运行结果截图

    基础题

    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; 
    	int i,j,len;
    	char a[21][11];
    	char b[11];
    	
    	if ((fp=fopen("E:\C语言\dengbo.txt","a+"))==NULL)
      {
      	printf("File open error!
    ");
      	exit(0);
      }
      //输入每个单词,'.'表示输入结束 
    	for(i = 0;;i++)
    	{
    		fscanf(fp,"%s",a[i]);//从文件中读取英文单词 
    		printf ("%s
    ",a[i]);//输出从文件中读取的英文单词
    		if(a[i][0]=='.') //我的学号最后一个数字是9,加上37对应的ASC||字符是'.'
    		    break;	
    	}
    	a[i][0]=''; //将'.字符行设为空 
    	len = i;     //单词的个数为len 
    	
    	//冒泡排序,将单词排序(长度由小到大) 
    	for(i=0;i<len;i++)
    	{
    		for(j=1;j<len-i;j++)
    		{
    			if(strlen(a[j-1])>strlen(a[j]))
    			{
    				strcpy(b,a[j-1]);
    				strcpy(a[j-1],a[j]);
    				strcpy(a[j],b);
    			}
    		}
    	}
    	fprintf (fp,"
    ");
    	//输出排序后的单词 
    	for(i=0;i<len;i++)
    	{
    		printf("%s ",a[i]);
    		fprintf (fp,"%s ",a[i]);
    	}
    	if (fclose(fp))
      {
      	printf ("Can not close the file!
    ");
      	exit (0);
      } 
    	return 0; 
    }
    

    2、设计思路

    3、运行结果截图

    预习作业:

    1、预习的主要内容

    密码开锁的程序解析、地址和指针、指针变量的定义、指针的基本运算、指针变量的初始化

    2、完成情况截图





    3、预习中存在的疑惑

    指针的基本运算

    二、学习进度条

    周/日期 这周所花时间 代码行 所学的知识点简介 目前比较迷惑的地方
    3/4-3/10 1小时 40行 定义指针;将运行结果在指定文件中输出 对代码中的一些英文不是很熟悉,无法独立完成
    3/11-3/17 3.5小时 100行 二维数组 不能快速的用二维数组表达
    3/18-3/24 7小时 139行 选择排序法、二分查找法二维数据的定义、引用、初始化,二维数组与矩阵 先写流程图时,不能很快的理清流程思路
    3/25-3/31 10小时 89行 字符串、判断回文,定义指针 对二维的字符串数组不是很了解

    三、学习感悟

    本次作业相较于上周的作业少了,但是有点难度,花的时间有点多,大部分时间都在看书,想了很久才做出来的。改成文件的时候,可能是因为过了几个星期的缘故吧,感觉没什么印象了,看了会书又知道了,对学过的东西还是要多巩固的。

    四、结对感悟

    每次结对编程的第一反应就是:不认识结对伙伴,还怎么可能一起讨论完成。这次结对是和室友一起完成的,感觉很好,两个人之间可以互相学习,一起讨论解决问题的方法。

  • 相关阅读:
    跳出iframe
    leetcode 225. Implement Stack using Queues
    leetcode 206. Reverse Linked List
    leetcode 205. Isomorphic Strings
    leetcode 203. Remove Linked List Elements
    leetcode 198. House Robber
    leetcode 190. Reverse Bits
    leetcode leetcode 783. Minimum Distance Between BST Nodes
    leetcode 202. Happy Number
    leetcode 389. Find the Difference
  • 原文地址:https://www.cnblogs.com/dengbo990915/p/10618122.html
Copyright © 2011-2022 走看看