第五周编程总结
7-1 统计一行文本的单词个数 (15 分)
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let's go to room 209.
输出样例:
5
1)实验代码
include<stdio.h>
include<string.h>
int main()
{
int count,i,b;
char a[500];
gets(a);
b=strlen(a);
count=1;
for(i=0;i<b-1;i++){
if(a[0] == ' ')
count=0;
if(a[i] == ' ' && a[i+1]!=' ')
count++;
}
printf("%d",count);
return 0;
}
2)设计思路
3)本题调试过程中遇到的问题
问题:scanf函数与gets函数使用混淆,以及没有计算字符串的长度。gets函数可以接受空格,而scanf函数遇到空格会导致输入结束,所以他不能接受空格。开始我一直疏忽了scanf函数在本题中是否能用,导致我一直部分答案错误,最后在彭琛老师的帮助下,我顺利的写完了这段代码。
4)运行截图
7-1 英文单词排序 (25 分)
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:
blue
red
yellow
green
purple
输出样例:
red blue green yellow purple
1)实验代码
include<stdio.h>
include<string.h>
int main()
{
FILE*fp;
int i,j,n;
char a[20][10],b[10];
if((fp=fopen("D://360downloads//Tom.txt","a+"))NULL){
printf("File open error!\n");
}
for(i = 0;;i++)
{
fscanf(fp,"%s",a[i]);
if(a[i][0]'#')
break;
}
a[i][0]='\0';
n= i;
for(i=0;i<n;i++)
{
for(j=1;j<n-i;j++)
{
if(strlen(a[j-1])>strlen(a[j]))
{
strcpy(b,a[j-1]);
strcpy(a[j-1],a[j]);
strcpy(a[j],b);
}
}
}
for(i=0;i<n;i++)
{
printf("%s ",a[i]);
}
if(fclose(fp)){
printf("Can not close the file!\n");
}
return 0;
}
2)设计思路
3)本题调试过程中遇到的问题
问题:https://blog.csdn.net/Prime_2018/article/details/83959988
这个题我是从网上看了这个博主的代码才写出来的。当时是答案部分错误,主要是我用一维数组来写代码,可是最后我看了单词并列情况没有写出来,以及逆序这种也没有想出来,所以我做了几天也没有做出来,所以我看了这个博主的博客最后用二维数组和冒泡法把他写出来了。
4)运行截图
预习的主要内容:
指针是程序数据在内存中的地址,而指针变量是用来保存这些地址的变量。指针的值实质是内存单元的编号,所以指针单独从数值上看,也是整数,他们一般用16进制表示。
预习中存在的疑惑:
1:什么是指针的释放?
2:指针与地址的区别?
3:指针的类型转换?
学习进度条
学习感悟:
本周学习了指针以及数组的运用,以及学到了新的知识。知道了gets函数与scanf函数的区别,gets函数可以接受空格,而scanf函数遇到空格会导致输入结束,所以他不能接受空格。这周编程让我痛不欲生,尤其是第五周基础题更是让我怀疑人生,为了做这道题我熬夜了,结果还是部分答案错误,最后我从网上看了一位博主的博客我才发现这道题最好用二维数组来解决,而我却是一直用一维数组来解决这道题,所以总是有些情况没思考到。
结对编程的过程及优缺点:
我和我队友一起编程,我们一起做题目,一起思考,其中我们对第五周基础题感到恼火,想了各种各样的方法来写,其结果还是答案错误,最后还是从网上查找到啦解决办法。
优点:结对编程能够思考的更全面一点,也更加容易写出代码出来,优势互补,也容易交到朋友。
缺点:不过,因为结对编程的两个人是系统随机匹配的,两人互不认识,所以交流起来就有点困难,也容易起争执,不利于及时完成作业。