第五周作业

这个教程属于哪个教程 C语言程序设计II
这次作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/2825
我在这个课程的目标是 学习字符串,应用于实际题目中
这个具体在哪个方面帮助我实现目标 类似于实现搜索附近地点的目的
参考文献

一:作业编程总结

题目7-1 统计一行文本的单词个数 (15 分)

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let's go to room 209.
输出样例:
5
1)实验代码

   #include<stdio.h>
   #include<stdlib.h>
   #include<string.h>
   int main ()
   {
   int i,t=0;
   char str[10000];
       if((fp=fopen("D:\\C语言编程\\tanshiting.txt","w+"))=NULL)//打开文件
       {
        printf("file open error!\n");
        exit(0);
        }
        for(i=0;i<strlen(str);i++)
       {
   fscanf(fp,"%s",str[i]);
   }
   if(str[0]!=' ')
   {
	t=1;
   }

   for(i=1;i<strlen(str)-1;i++)
   {
	 if(str[i]==' '&&str[i+1]!=' ')
	 {
		t++;
	 }
    }
  fprintf(fp,"%d\n",t);
      if(fclose(fp)//关闭文件
     {
        printf("Can not close the file!\n");
        exit(0);
     }
  return 0;
      }

2)设计思路

3)本题调试过程碰到的问题及解决办法

错误1:结果错误,没有运行起来,我是直接输出一个单词字符。
错误1的解决办法:我们得计算字符的长度,从而达到真正输出一个一个单词的效果。
4)运行结果截图

题目7-2 英文单词排序 (25 分)

本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:
blue
red
yellow
green
purple

输出样例:
red blue green yellow purple
1)实验代码

     #include<stdio.h>
     #include<stdlib.h>
     #include<string.h>
     int main()
     {
  int i,j,num;
  char op=' ';
      char str[21][11];
      char k[11];
       if((fp=fopen("D:\\C语言编程\\tanshiting.txt","w+"))=NULL)//打开文件
       {
        printf("file open error!\n");
        exit(0);
      for(i=0;;i++)
      {
	  fscanf(fp,"%s",str[i]);
	  if(str[i][0]==''')//ASCII值为结束标志符号
	  {
		break;
	}
  }
      str[i][0]='\0';
          num=i;
//单词进行排序//
     for(i=0;i<num;i++)
     {
	 for(j=1;j<num-i;j++)
	 {
		if(strlen(str[j-1])>strlen(str[j])) 
		{
		strcpy(k,str[j-1]);
		strcpy(str[j-1],str[j]);
		strcpy(str[j],k);
	    }
	}
	
  }
      //输出单词与空格//
  for(i=0;i<num;i++)
  {
	fprintf(fp,"%s%c",str[i],op);
	
  }
       if(fclose(fp)//关闭文件
     {
        printf("Can not close the file!\n");
        exit(0);
     }
  return 0;
      }

2)设计思路

3)本题调试过程碰到的问题及解决办法


错误1:没有仔细审题,审题出现错误,空格的位置输出错误。
错误1的解决办法:在每个单词的后面输出一个或多个空格。
本题还是和结对的朋友一起百度一点点搞出来的。
4)运行结果截图

二:第五周预习总结


三:学习进度条

周/日期 这周所花的时间 代码行数 学到的知识点简介 目前比较的迷惑的问题
3/11-3/17 八个多小时 35 预习了二维数组,利用二维数组解决实际问题
3/4-3/10 三个多小时 34 学会创建C语言中的文件,将我们所需的数据和打印出来的数据储存到文件中,学会如何将用户信息进行加密和校验 在用户信息·加密中,对低四位取反,高四位保持不变的操作不是很理解
3/18-3/24 七个多小时 137 二维数组的初始,选择排序,冒泡排序
3/25-3/31 七个多小时 82 判断回文,字符串,一维字符数组 英语单词排序那题还有一点点知识点没找好

四:心得感悟

二维数组的应用结合起排序对我来说有点困难,就像这次的单词排序题,是想了很多方法,才解决的。

五:结对感悟

之前结对分配的都是都不认识的人,就算去认识,但是真的不好去一起讨论问题,每周作业一般都是和室友完成的,结对是有好处,可以互相学习互相发现问题。

 posted on 2019-03-28 19:43  谭诗婷  阅读(324)  评论(2编辑  收藏  举报