第五周作业总结

第四周预习题
7-1 统计一行文本的单词个数 (15 分)

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:

输入给出一行字符。 

输出格式:

在一行中输出单词个数。 

输入样例:

Let's go to room 209.

输出样例:

5

1.实验代码

#include<stdio.h>
#include<string.h>
int main(void)
{
    int i, num, sum;
    char str[1000];
    
    gets(str);
    num = strlen(str);   
    
    if(str[0] == ' ')
    {
	    sum = 0;
    }
    else
    {
	    sum = 1; 
    }
    
    for(i=0; i<num-1; i++)
    {
	    if(str[i] == ' '&&str[i+1] != ' ') 
	    {
	      sum++;	
	    }
    }
    printf("%d", sum);
    return 0;
}

2.设计思路

3.本题遇到的问题及解决方法
问题:1.定义数组是数组长度不够
2.输出时的空格没注意

解决方法:第一个问题是队友提醒了一下我,可能是数组长度不够
第二个问题我是通过对比琛姐的代码,发现的

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(void)
{
    char len[10];
    char input[21][10], a[20];
    int i=0, k, num;
    
    while(1)
    {
	    scanf("%s", &a);
	    if(a[0]=='#')
	    {
		    break;
	    }
	    else{
		    strcpy(input[num], a) ;
		    
		    num++;
	    }
	    i++;
    }
    num=i;
    input[i][0]='';
    
    for(i=0; i<num; i++)
    {
	    for(k=1; k<num-i; k++)
	    {
		    if(strlen(input[k-1])>strlen(input[k]))
		    {
			    strcpy(len,input[k-1]);
			    strcpy(input[k-1],input[k]);
			    strcpy(input[k],len);
		    }
	    }
    }
    for(i=0; i<num; i++)
    {
	    printf("%s ", input[i]);
    }
    return 0;
}

2设计思路

3本题遇到的问题及解决方法
问题:出现了段错误,但是找不到原因

解决方法:找队友给我改了一下代码

4.正确截图

学习进度表:

心得:感觉时间已经开始不够我做题了以及知识的匮乏导致没有做题的欲望,这个放弃的念头开始滋生。不过我知道这样不对,会及时更改的

队友评价:
优点:1.队友很给力,很厉害,可以教会我许多我没有触及到的知识点
2.很有想法
3.教会了我独立思考

缺点:可能是我自己的原因吧,我没法听懂他传输给我的思路,也不是这样,就是没法让自己接受他的思路

预习内容及疑惑:

内容:1.如何定义指针
2.指针的基本运算

疑惑:1.不会用指针,不知道使用它的意义何在
2.*p具有多重含义,在不同的语句中有不同的含义,不是很理解

原文地址:https://www.cnblogs.com/yuanqizhizhi/p/10610130.html