• 2019春第五周作业


    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/2825
    我在这个课程的目标是 进一步了解字符串以及二维数组的运用
    这个作业在那个具体方面帮助我实现目标 二维数组的运用与字符串结合起来使用
    参考文献 strcpy的运用(http://blog.sina.com.cn/s/blog_5f82a1060100kz0p.html) strlen的意思(https://wenda.so.com/q/1458200285723342)
    一、基础作业
    =========
    第四周预习作业

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

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

    输入格式:

    输入给出一行字符。

    输出格式:

    在一行中输出单词个数。

    输入样例:

    Let's go to room 209.
    

    输出样例:

    5
    

    1.实验代码

    #include<stdio.h>
    int main()
    {
    	char ch;
    	int flag=0;
    	int count=0;
    	while((ch=getchar())!='
    ')
    	{
    		if(ch!=' '&&flag==0)
    		{
    			count++;
    			flag=1;
    		}
    		else if(ch==' ')
    		{
    			flag=0;
    		}
    	}
    	printf("%d
    ",count);
    	
    	return 0;
    }
    

    2.实验设计思路:
    流程图:

    3.本题遇到的问题及解决办法:
    问题:当时在没学这个回文的时候不知道怎么来表示字符串
    解决:在学完之后就知道然后表示字符串了将预习题写了
    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 str[100][100];
    	char num[100];
    	int i = 0, j = 0,temp ;
    	while (1) {
    		scanf("%s", str[i]);
    		if (str[i][0] == '#')
    			break;
    		    i++;
    	}
    	str[i][0] = '';
    	temp = i;
    	for (i = 0; i < temp; i++)
    	{
    		for (j = 1; j < temp - i; j++)
    		{
    			if (strlen(str[j - 1]) > strlen(str[j]))
    			{
    				strcpy(num, str[j - 1]);
    				strcpy(str[j - 1], str[j]);
    				strcpy(str[j], num);
    			}
     		}
    	}
    	for (i = 0; i < temp; i++)
    		printf("%s ", str[i]);
     
    	return 0;
    }
    

    博客园要求输入文件代码:

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main(void)
    {
    	FILE * fp;
    	char str[100][100];
    	char num[100];
    	int i = 0, j = 0,temp ;
    	
    	if((fp=fopen("F:\xueshengke3.txt","w+"))==NULL)
    	{
            printf("File open error!
    ");
            exit(0);
        }
    	while (1) {
    		scanf("%s", str[i]);
    		fprintf(fp,"%s
    ",str[i]);
    		if (str[i][0] == '&')//我的学号是结尾是1加上37的ASCII字符是&
    			break;
    		    i++;
    	}
    	str[i][0] = '';
    	temp = i;
    	for (i = 0; i < temp; i++)//运用上次的挑战题的冒泡循环
    	{
    		for (j = 1; j < temp - i; j++)
    		{
    			if (strlen(str[j - 1]) > strlen(str[j]))//这一部分我是参考百度的
    			{
    				strcpy(num, str[j - 1]);
    				strcpy(str[j - 1], str[j]);
    				strcpy(str[j], num);
    			}
     		}
    	}
    	for (i = 0; i < temp; i++){
    		printf("%s ", str[i]);
    		fprintf(fp,"%s ",str[i]);
        }
        if(fclose(fp)){
            printf("Can not close the file!
    ");
            exit(0);
        }
    	return 0;
    }
    

    2.实验设计思路:
    流程图:

    3.本题遇到的问题及解决办法:
    问题:

    出现段错误,弄了很久
    解决:是因为字符串是用%s表示而我用的是%d
    问题:

    运行时间长了
    解决:在定义数组时我定义的单元格少了就会出现超时的结果,将数组定义的更大
    问题:

    在输出是%s后没有空格
    解决:在%s的后面加上空格
    4.运行结果截图:

    二、预习作业



    三、学习进度条

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    3/9-3/15 5小时 39 在文件中读,写 文件指针
    3/15-3/18 5小时 81 二维数组 数组怎么定义位置
    3/18-3/22 6小时 选择排序法、二分查找法 出现一些段错误不知道怎么搞
    3/22-3/29 5小时 68 字符串数组的定义及其运用二维数组的使用 复杂的字符串不会写

    四、学习感悟

    字符串需要用到ASCII码,学习到了字符串的使用,文件的调用更加熟练!

  • 相关阅读:
    C# 读写ini文件
    How to Create DLL(Dynamic link library)
    运算符优先级
    汇编指令:lea
    AT&T汇编语法与x86语法基本区别
    栈的生长方向理解
    Mac Mojave 10.14.5安装python tesserocr
    一台电脑发布多个网站
    局域网内电脑之间互相访问网站
    判断两个对象是否相等——javascript实现
  • 原文地址:https://www.cnblogs.com/angel-520/p/10621995.html
Copyright © 2020-2023  润新知