第五周作业

7-1 统计一行文本的单词个数 (15 分)

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let's go to room 209.
输出样例:
5
代码:

include<stdio.h>

include<string.h>

int main (void)
{
int i, len, word;
char zf[1000];

gets(zf);
len = strlen(zf);

if (zf[0] == ' ')
word = 0;
else
num = 1;

for(i = 0;i < len - 1; i++)
{
    if(zf[i] == ' ' && zf[i+1] != ' ')
    word++;
}
printf("%d", word);

return 0;

}
流程图:

提交截图:

7-1 英文单词排序 (25 分)

本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:
blue
red
yellow
green
purple

输出样例:
red blue green yellow purple
代码:

include<stdio.h>

int main (void)
{
char a[21][11];
char b[11];
int i,j,m;
char tmp[11];
for(i=0;i<21;i++)
{
scanf("%s",&a[i]);
if(a[i][0]=='#')
break;
}
for(m=1;m<i;m++)
for(j=0;j<i-m;j++)
if (strlen (a[j] )> strlen (a [j+1]))
{
strcpy(tmp,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],tmp);
}
for(int n=0;n<i;n++)
printf("%s ",a[n]);

return 0;
}
流程图:
运行截图:

错误:第一次忘了给#打上‘’ 导致错误,后来因为strlen没熟悉打错了一个字母错误,后来检查之后改正,提交正确。
学习进度:

日期 本周所花时间 代码行数 所学知识点 目前迷惑的问题
3 4-3 10 三个小时 90 二维数组
3 11-3 17 两个小时 70 创建C语言中的文件 加密
3 18-3 14 四个小时 120 选择排序,冒泡排序,二维数组 选择排序有点复杂,需要时间来写
3 25-3 29 两个小时 60 一维字符串 strlen具体使用方法

心得感悟:
这周作业相对于上周来说少了很多,内容和上周相比差不多,上周作业较复杂,知识点不多,这周作业设计涉及知识点多,但建构简单。
结对感悟:
这次结对的人告诉了我有人会做,我两一开始都不会做,后来他认识二班有一位大佬,叫过来告诉了我们,教我们用strlen函数,像选择排序那样比较,最后得到结果。

posted @ 2019-03-29 21:24  时倾!  阅读(278)  评论(1编辑  收藏  举报