2019春季第五周作业

2019春季第五周作业

| 问题 | 回答 |
| 作业所属科目 | C语言程序设计 |
| 作业的基本要求 | 第五周作业 |
| 我在这个课程的目标是 |学会使用字符串 |
| 这个作业在哪个具体方面帮助我实现目标 |字符串的输入输出 |
| 参考文献 | C语言程序设计 |

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

include<stdio.h>

include<string.h>

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

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

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

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

2)流程图

3)本题调试过程碰到的问题及解决办法

问题:不知道要把数组设多大,还有就是思路不完整,输出答案错误,对题目理解不够透彻
解决办法:尝试把数组写大,多次尝试空格,就对了,还有思路是根据那个测试点修改了就可以了

4)运行结果截图

对题目理解不是很深

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

输出样例:
red blue green yellow purple
老师要求
1)通过以自己名字命名的文件输入英文单词
2)英文单词输入的结束标记为你学号最后一位数+37所对应的ASCII字符。(例如:你的学号最后一位为9,则结束标记为9+37=46所对应的ASCII字符“.”
3)在不删除原有内容的情况下,将排序后的单词输出到文件。

1)实验代码

include<stdio.h>

include<string.h>

int main(void)

{

char ar[25][20] = { '' };

char b[15] = { '' };

int i = 0;

while (1) {

	gets(ar[i]);

	if (ar[i][0] == '#')

		break;

	i++;

}

ar[i][0] = '';

int len = i;

int j = 0;

for (i = 0; i < len; i++)

{

	for (j = 1; j < len - i; j++)

	{

		if (strlen(ar[j - 1]) > strlen(ar[j]))

		{
    strcpy(b, ar[j - 1]);

			strcpy(ar[j - 1], ar[j]);

			strcpy(ar[j], b);

		}

	}

}

for (i = 0; i < len; i++)
	printf("%s ", ar[i]);
return 0;

}

2)流程图

3)本题调试过程碰到的问题及解决办法

问题:忘记注意格式,还有就是对于字符串内的一些函数不知道,一开始不知道在输入的时候怎么跳出循环
解决办法:运行的时候根据结果进行修改和答案错误。

4)运行结果截图

5)评价
发现这一题做完,我已经快要绝望
用时:N H

预习作业:
1)预习的主要内容
主要是了解了指针,知道怎么定义指针的一般形式,知道了内存单元的内容和内存单元的地址的区别,定义多个指针变量时,每个指针变量前面都必须加*,和指针的基本运算,还有将指针变量初始化
2)完成情况截图(要求有题目和答案)

3)预习中存在的疑惑(至少写出2条)
1.对“空格数可以是多少个”,没有完全理解
2,当为两个空格时,答案错误

学习进度条

学习感悟
1,地址和指针的定义与应用
2,指针变量的定义
3,指针的基本运算
4,指针变量的初始化

结对编程的感悟
1,我发现我的搭档的想法有时候根本和我不一样,一点都不一样
2,写出来的代码更加不一样
3,促进了我们C语言这方面的思想思维交流
4,有利于推动我们的学习进度
5,但是,利大于弊,当两个完全不爱学习的人结对成搭档时,可能是不会学习的
6,当两个爱学习的人组合在一起的时候,简直是如虎添翼
7.刚刚开始结对,经验方面有些不足

原文地址:https://www.cnblogs.com/freezinng/p/10622144.html