本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
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、相互讨论下,算不得强强联手,但也是共同进步。
缺点:与更加优秀的同学比起来,还有进步空间。