第五周作业 痛定思痛。 2022-01-06 08:37 296阅读 0赞 ![1581840-20190329124817262-1330362741.png][] 本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中输出单词个数。 输入样例: 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; } 设计思路: ![1581840-20190329170215613-1180794510.png][] 遇到的问题及解决办法: 问题:有些不常用的或新的代码不熟悉,只看得懂,但不会用。 方案:借鉴了https://blog.csdn.net/m0\_43446428/article/details/85040310 运行截图: ![1581840-20190329134305575-1564829973.png][] 本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。 输入格式: 输入为若干英文单词,每行一个,以\#作为输入结束标志。其中英文单词总数不超过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]); } } 设计思路: ![1581840-20190329170031236-1475005678.png][] 借鉴了:[https://blog.csdn.net/xyt02201608/article/details/80218677][https_blog.csdn.net_xyt02201608_article_details_80218677] 遇到的问题及解决方案: 问题:输出总是格式不对,现在很少编译错误了,但答案错误最让人崩溃了。 方案:仔细观察题目要求的答案示例,复制后移动鼠标光标,便可以发现哪里有空格。 问题:写完才发现要用指针。 方案:只能重新写。 运行结果截图: ![1581840-20190329144053413-951762541.png][] ![1581840-20190329144118016-967331626.png][] 单选题: ![1581840-20190329144303429-643437988.png][] ![1581840-20190329144324165-1299970159.png][] ![1581840-20190329144338356-1568069739.png][] 进度条: ![1581840-20190329145417156-453757431.png][] ![1581840-20190329150524377-724217937.png][] 学习感悟: 学习了字符串;练习了指针;运用了三个数互换来排序。我收获了满满的头疼,不过同时也对以前的知识更加熟练了。本周难的就是字符串的使用,对此我借鉴了他人的优秀思路,也做了多次尝试。 结对编程: 优点:同学之间互相帮助,互相教对方,可以得到能力上的互补。 增强代码质量,并有效的减少BUG。 降低学习成本。一边编程,一边共享知识和经验,有效地在实践中进行学习。 在编程中,相互讨论,可能更快更有效地解决问题。 缺点: 对于有不同编码习惯的同学,会产生麻烦,甚至矛盾。 两个人在一起工作可能会出现工作精力不能集中的情况。大家可能会交谈一些与代码无关的事情,反而分散注意力,导致效率比单人更为低下。 人是有能力的高低的,有经验的老手可能会觉得非常的烦躁。不合适的沟通会导到团队的不和谐。 结对同学的优点: 1、耐心。本身就是学习委员,在代码能力上非常优秀,请教时会非常耐心讲解。 2、能力强,有效减少了编程难度。 3、相互讨论下,算不得强强联手,但也是共同进步。 缺点:与更加优秀的同学比起来,还有进步空间。 转载于:https://www.cnblogs.com/qiuf99999/p/10621498.html [1581840-20190329124817262-1330362741.png]: /images/20211227/a85e78b25f5b4a20a1feea642e62a0a4.png [1581840-20190329170215613-1180794510.png]: /images/20211227/3199e955b56247d297625c439b5bc36d.png [1581840-20190329134305575-1564829973.png]: /images/20211227/e96595174a5e4e31910fe00713c6375d.png [1581840-20190329170031236-1475005678.png]: /images/20211227/44388839f9794c0e988a15a659a9dcd2.png [https_blog.csdn.net_xyt02201608_article_details_80218677]: https://blog.csdn.net/xyt02201608/article/details/80218677 [1581840-20190329144053413-951762541.png]: /images/20211227/ff6e6a8d0ec84b60a7229713f4c66d09.png [1581840-20190329144118016-967331626.png]: /images/20211227/e82251f4d598484cad7071c4067800e2.png [1581840-20190329144303429-643437988.png]: /images/20211227/af260358101347c190a882f3666eaa36.png [1581840-20190329144324165-1299970159.png]: /images/20211227/c1d8b9ec9f134a3ba84d8a3b27b8fe5f.png [1581840-20190329144338356-1568069739.png]: /images/20211227/61f8b497e5a64dba9890e463d1e1ff61.png [1581840-20190329145417156-453757431.png]: /images/20211227/e93ccc000d7a45ca8bbeb0db27094f3a.png [1581840-20190329150524377-724217937.png]: /images/20211227/ed3b50669be1495eace2e0f55586eed9.png
还没有评论,来说两句吧...