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

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

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

输入样例:
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!\n");
        exit(0);
    }
    
    if(fclose(fp))
    {
        printf("NO!\n");
        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,"\n");
    for(i=0;i<n;i++)
	{
        fprintf(fp,"%s ",str[i]);
    }

} 

设计思路:

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

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

运行结果截图:

单选题:


进度条:

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

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

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

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

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