• 第五周作业


    本周作业头

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/2825
    我在这个课程的目标是 弄懂字符和字符串以及一维数组和二维数组
    这个作业在那个具体方面帮助我实现目标 字符串的使用和二维数组
    参考文献 百度百科以及c语言教材

    题目

    基础作业
    7-1 统计一行文本的单词个数
    本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。

    输入格式:

    输入给出一行字符。

    输出格式:

    在一行中输出单词个数。

    输入样例:

    Let's go to room 209.
    

    输出样例:

    5
    

    代码

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

    运行截图

    流程图

    题目

    7-1 英文单词排序 (25 分)
    本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。

    输入格式:

    输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。

    输出格式:

    输出为排序后的结果,每个单词后面都额外输出一个空格。

    输入样例:

    blue
    red
    yellow
    green
    purple
    #
    

    输出样例:

    red blue green yellow purple 
    

    代码

    #include<stdio.h>
    #include<string.h>
    int main(void)
    {
    	char input[21][11] = { '' };
    	char snap[11] = { '' };
    	int i = 0;
    	while (1) {
    		scanf("%s", input[i]);
    		if (input[i][0] == '#')
    			break;
    		i++;
    	}
    	input[i][0] = '';
    	int len = i;
    	int j = 0;
    	for (i = 0; i < len; i++)
    	{
    		for (j = 1; j < len - i; j++)
    		{
    			if (strlen(input[j - 1]) > strlen(input[j]))
    			{
    				strcpy(snap, input[j - 1]);
    				strcpy(input[j - 1], input[j]);
    				strcpy(input[j], snap);
    			}
     		}
    	}
    	for (i = 0; i < len; i++)
    		printf("%s ", input[i]);
     
    	return 0;
    }
    

    指针代码

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main(void)
    {
        FILE *fp;
        
        char input[21][11] = { '' };
        char snap[11] = { '' };
        int i = 0;
        
        if((fp=fopen("C:\Users\11484\Desktop\谭乃宁\.txt","w+"))==NULL){
            printf("File open error!
    ");
            exit(0);
        }
        while (1) {
            scanf("%s", input[i]);
            if (input[i][0] == '*')
                break;
            i++;
        }
        input[i][0] = '';
        int len = i;
        int j = 0;
        for (i = 0; i < len; i++)
        {
            for (j = 1; j < len - i; j++)
            {
                if (strlen(input[j - 1]) > strlen(input[j]))
                {
                    strcpy(snap, input[j - 1]);
                    strcpy(input[j - 1], input[j]);
                    strcpy(input[j], snap);
                }
            }
        }
        for (i = 0; i < len; i++)
            printf("%s ", input[i]);
            
        for (i = 0; i < len; i++)
            fprintf(fp,"%s ", input[i]);
        
        if(fclose(fp)) {
            printf("Can not close the file!
    ");
            exit(0);
        }
     
        return 0;
    }
    

    运行截图

    j文件截图

    流程图

    问题

    一开始就不知道以什么方法输入,因为输入的特殊性,不过后面发现输入其实很简单,跟自己的结对小伙拍一起讨论,我首先提出了主要的思路,虽然大部分是错误的,不过也有些方面被采取,比如利用一个内循环来记录单词的长度,还有设置二维数组,虽然对于二维数组接触很少,不过通过看书,发现这是一个很强的东西,tqltql。
    

    预先作业


    学习总结

    周/日期 所花时间 代码行数 学到的知识简介 目前所困惑的问题
    3/2-3/9 2天 37行 指针文件以及处理 对于导入其他格式的文件不太了解
    3/9-3/16 40行 一维数组和二维数组的介绍 二维数组的
    3/16-3/23 35行 数组的选择排序和位置交换 多轮复杂循环
    3/23-3/30 49行 字符和字符串 字符的运行机理
  • 相关阅读:
    C# 字符串转为DateTime类型
    多线程的注意事项
    linux 安装中文支持
    发布网站遇到的坑
    配置iis支持json解析,配置ssi
    SEO之图片优化
    SEO之面包屑导航
    SEO之HTML标签
    SEO之优化代码
    SEO之网站内部结构优化
  • 原文地址:https://www.cnblogs.com/xscltnn0104/p/10624676.html
Copyright © 2020-2023  润新知