第五周作业
这个教程属于哪个教程 | C语言程序设计II |
这次作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/2825 |
我在这个课程的目标是 | 学习字符串,应用于实际题目中 |
这个具体在哪个方面帮助我实现目标 | 类似于实现搜索附近地点的目的 |
参考文献 | 无 |
一:作业编程总结
题目7-1 统计一行文本的单词个数 (15 分)
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let's go to room 209.
输出样例:
5
1)实验代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main ()
{
int i,t=0;
char str[10000];
if((fp=fopen("D:\\C语言编程\\tanshiting.txt","w+"))=NULL)//打开文件
{
printf("file open error!\n");
exit(0);
}
for(i=0;i<strlen(str);i++)
{
fscanf(fp,"%s",str[i]);
}
if(str[0]!=' ')
{
t=1;
}
for(i=1;i<strlen(str)-1;i++)
{
if(str[i]==' '&&str[i+1]!=' ')
{
t++;
}
}
fprintf(fp,"%d\n",t);
if(fclose(fp)//关闭文件
{
printf("Can not close the file!\n");
exit(0);
}
return 0;
}
2)设计思路
3)本题调试过程碰到的问题及解决办法
错误1:结果错误,没有运行起来,我是直接输出一个单词字符。
错误1的解决办法:我们得计算字符的长度,从而达到真正输出一个一个单词的效果。
4)运行结果截图
题目7-2 英文单词排序 (25 分)
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:
blue
red
yellow
green
purple
输出样例:
red blue green yellow purple
1)实验代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i,j,num;
char op=' ';
char str[21][11];
char k[11];
if((fp=fopen("D:\\C语言编程\\tanshiting.txt","w+"))=NULL)//打开文件
{
printf("file open error!\n");
exit(0);
for(i=0;;i++)
{
fscanf(fp,"%s",str[i]);
if(str[i][0]==''')//ASCII值为结束标志符号
{
break;
}
}
str[i][0]='\0';
num=i;
//单词进行排序//
for(i=0;i<num;i++)
{
for(j=1;j<num-i;j++)
{
if(strlen(str[j-1])>strlen(str[j]))
{
strcpy(k,str[j-1]);
strcpy(str[j-1],str[j]);
strcpy(str[j],k);
}
}
}
//输出单词与空格//
for(i=0;i<num;i++)
{
fprintf(fp,"%s%c",str[i],op);
}
if(fclose(fp)//关闭文件
{
printf("Can not close the file!\n");
exit(0);
}
return 0;
}
2)设计思路
3)本题调试过程碰到的问题及解决办法
错误1:没有仔细审题,审题出现错误,空格的位置输出错误。
错误1的解决办法:在每个单词的后面输出一个或多个空格。
本题还是和结对的朋友一起百度一点点搞出来的。
4)运行结果截图
二:第五周预习总结
三:学习进度条
周/日期 | 这周所花的时间 | 代码行数 | 学到的知识点简介 | 目前比较的迷惑的问题 |
---|---|---|---|---|
3/11-3/17 | 八个多小时 | 35 | 预习了二维数组,利用二维数组解决实际问题 | 无 |
3/4-3/10 | 三个多小时 | 34 | 学会创建C语言中的文件,将我们所需的数据和打印出来的数据储存到文件中,学会如何将用户信息进行加密和校验 | 在用户信息·加密中,对低四位取反,高四位保持不变的操作不是很理解 |
3/18-3/24 | 七个多小时 | 137 | 二维数组的初始,选择排序,冒泡排序 | 无 |
3/25-3/31 | 七个多小时 | 82 | 判断回文,字符串,一维字符数组 | 英语单词排序那题还有一点点知识点没找好 |
四:心得感悟
二维数组的应用结合起排序对我来说有点困难,就像这次的单词排序题,是想了很多方法,才解决的。
五:结对感悟
之前结对分配的都是都不认识的人,就算去认识,但是真的不好去一起讨论问题,每周作业一般都是和室友完成的,结对是有好处,可以互相学习互相发现问题。