zoukankan      html  css  js  c++  java
  • 第五篇博客

    这个作业属于哪个班级 C语言--网络2012
    这个作业的地址 C博客作业04--数组
    这个作业的目标 学习数组相关内容
    姓名 卢伟杰

    0.展示PTA总分


    1.本章学习总结

    1.1 学习内容总结

    1.1.1 数组中如何查找数据,有哪些做法

    • 目前学习了两种查找数组中数据的方法:

      A.顺序查找 :不需要排序,遍历所有数组元素,查找时间较长。

      B.二分法查找 :需要对所有数据进行排序,每次都是和中间值比较。

    1.1.2 数组中如何插入数据,怎么做

    • 目前学习了三种插入进数组数据的方法(后面两种可输入带空格字符串):

      A.scanf语句输入数据 :

           scanf("%s", &str)
           输入函数:数组名,不加地址符;
           遇到回车或空格输入结束,
           并自动将这一字符串和''送入数组中。
          
           scanf无法接收带空格的字符串。
    

    B.循环输入

           for (int i = 0; i < n; i++)
              {
                   scanf("%c", &str[i]);
              }
           str[i] = '';
           
           循环输入要注意在循环结束后加结束符''。
           循环输入可以输入空格。     
    

    C.fgets函数

          char str[80];
          fgets(str, 80, stdin);      //表示标准输入符;
          
          fgets 是将 n - 1个字符输入到数组内,最后一位为'
    ';
          使用时要注意数组大小,避免产生字符溢出的问题;
          进行循环条件需设置 :
             for (i = 0;str[i]&& str[i]!='
    '; i++)
    

    1.1.3 数组中如何删除数据

    • 目前学习了三种删除数组数据的方法:

    A.将要删除元素的后面全部往前移动

    B.将不符合规则的元素去除,只输出符合的元素

    C.使用哈希数组,删除重复的字符,并进行输出

    1.1.4 数组中目前学到排序方法

    • 目前学习了两种数组数据排序的方法:

    A.冒泡法排序(使用for循环并考虑怎么实现冒泡)

    B.选择法排序 (for循环,并if语句进行判断变换)

    1.1.5 哈希数组用法,目前学过哪些案例,举例展示

    • 目前学习了两种哈希数组使用的方法:

    A.7-3 删除重复字符

    #include <stdio.h>
    int main()
    {
    	char str[81];
    	static int hash[256];
    	int i = 0;
    
    	fgets(str, 81, stdin);
    
    	for (i = 0; str[i] != '
    '; i++)
    	{
    		hash[str[i]]++;
    	}
    
    	for (i = 0; i < 256; i++)
    	{
    		if (hash[i] != 0)
    		{
    			printf("%c", i);
    		}
    	}
    
    	return 0;
    }
    

    B.7-7 A-B

    #include <stdio.h>
    int main()
    {
        char str1[10002];
        char str2[10002];
        static int hash[128];
    
        fgets(str1, 10002, stdin);
        fgets(str2, 10002, stdin);
    
        for (int i = 0; str2[i] != '
    '; i++)
        {
            hash[str2[i]]++;
        }
    
        for (int i = 0; str1[i] != '
    '; i++)
        {
            if (hash[str1[i]] == 0)
            {
                printf("%c", str1[i]);
            }
        }
    
        return 0;
    }
    

    2.PTA实验作业

    2.1 7-5 调查电视节目受欢迎程度

    2.1.1 伪代码

          定义并初始化电视节目的数组 b[8];
          定义数组a[1000];
          定义n为数组的个数;
          输入n;
          for i = 0 to n - 1
          输入数值赋予 a[i];
          for i = 0 to n - 1
          int j = a[i]; 
          进行switch结构判断节目的选项;
          输出节目序号与数量;
    

    2.1.2 代码截图



    2.1.3 同学代码截图

    2.2 7-14 找鞍点

    2.2.1 伪代码

          定义n为二位数组的行列数;
          定义 i,j;
          定义数组a[max][max]
          定义void getPoint(int a[][max], int n)
          for i = 0 to n - 1;
          for j = 0 to n - 1;
          输入数值赋予a[i][j];
          进入函数进行判断;
          输出所找到的鞍点;
    

    2.2.2 代码截图

    2.2.3 请说明和超星视频做法区别,各自优缺点

    **本题就是从超星视频学习的**
    

    2.3 切分表达式——写个tokenizer吧

    2.3.1 伪代码

           定义 i 、j;和数组str[41];
           用fgets向str数组输入数据;
           for i = 0 to str[i] != '
    '
           对str[i]进行判断并输出相应的数据;
    

    2.3.2 代码截图

    2.3.3 请说明和超星视频做法区别,各自优缺点

    **本题就是从超星视频学习的**
  • 相关阅读:
    Best code水题之路
    我的CodeF水A题之路
    studing(来自转载)
    BFS
    fibonacci数列(五种)
    Redis阻塞队列原理学习
    the enum hack
    Divide Two Integers
    Surrounded Regions
    Search in Rotated Sorted Array
  • 原文地址:https://www.cnblogs.com/eau2077/p/14130794.html
Copyright © 2011-2022 走看看