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


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

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

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

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

    实验代码:

    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
      char ch[1000];
      int a,b,i; 
      
      gets(ch);
      a = strlen(ch);
      if(ch[0]==' ')
      b=0;
      else
      b=1;
      for(i =0; i<a-1;i++)
      {
        if(ch[i]==' '&&ch[i+1]!=' ')
        b++;
      }
      printf("%d",b);
      
      return 0;
    }
    

    设计思路:

    遇到的问题及解决办法:
    问题:有些不常用的或新的代码不熟悉,只看得懂,但不会用。
    方案:借鉴了https://blog.csdn.net/m0_43446428/article/details/85040310

    运行截图:

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

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

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

    实验代码:

    #include <stdio.h>
    #include <string.h>
    int main()
    {
        char str[20][10],t[20],str1[10];
        int i,j,n=0;
        FILE *fp;
        if((fp=fopen("E:\Qiuqiyuan.txt","a+"))==NULL) 
        {
            printf("File open error!
    ");
            exit(0);
        }
        
        if(fclose(fp))
        {
            printf("NO!
    ");
            exit(0);
        }
        
    	while(1)
    	{
        	fscanf(fp,"%s",str1);
        	if(str1[0]=='#')
    	    {
        		break;
        	}
            else
    		{
            strcpy(str[n],str1);
            n++;
            }
        }
        for(i=0;i<n-1;i++)
        	for(j=0;j<n-i-1;j++)
    	    {
                if(strlen(str[j])>strlen(str[j+1]))
    		    {
                   strcpy(t,str[j]);
                   strcpy(str[j],str[j+1]);
                   strcpy(str[j+1],t);
                }
            }
            fprintf(fp,"
    ");
        for(i=0;i<n;i++)
    	{
            fprintf(fp,"%s ",str[i]);
        }
    
    } 
    

    设计思路:

    借鉴了:https://blog.csdn.net/xyt02201608/article/details/80218677

    遇到的问题及解决方案:
    问题:输出总是格式不对,现在很少编译错误了,但答案错误最让人崩溃了。
    方案:仔细观察题目要求的答案示例,复制后移动鼠标光标,便可以发现哪里有空格。
    问题:写完才发现要用指针。
    方案:只能重新写。

    运行结果截图:

    单选题:


    进度条:

    学习感悟:
    学习了字符串;练习了指针;运用了三个数互换来排序。我收获了满满的头疼,不过同时也对以前的知识更加熟练了。本周难的就是字符串的使用,对此我借鉴了他人的优秀思路,也做了多次尝试。

    结对编程:
    优点:同学之间互相帮助,互相教对方,可以得到能力上的互补。
    增强代码质量,并有效的减少BUG。
    降低学习成本。一边编程,一边共享知识和经验,有效地在实践中进行学习。
    在编程中,相互讨论,可能更快更有效地解决问题。

    缺点:
    对于有不同编码习惯的同学,会产生麻烦,甚至矛盾。
    两个人在一起工作可能会出现工作精力不能集中的情况。大家可能会交谈一些与代码无关的事情,反而分散注意力,导致效率比单人更为低下。
    人是有能力的高低的,有经验的老手可能会觉得非常的烦躁。不合适的沟通会导到团队的不和谐。

    结对同学的优点:
    1、耐心。本身就是学习委员,在代码能力上非常优秀,请教时会非常耐心讲解。
    2、能力强,有效减少了编程难度。
    3、相互讨论下,算不得强强联手,但也是共同进步。

    缺点:与更加优秀的同学比起来,还有进步空间。

  • 相关阅读:
    JS: Promise
    JS: 数据结构与算法之栈
    JS: 数组乱序
    JS: 数组扁平化
    JS:函数柯里化
    JS: 防抖节流
    JS:事件委托
    理解Node.js(译文)
    Javascript闭包入门(译文)
    你真的懂ajax吗?
  • 原文地址:https://www.cnblogs.com/qiuf99999/p/10621498.html
Copyright © 2011-2022 走看看