zoukankan      html  css  js  c++  java
  • 第四次随笔作业

    预习作业

    作业要求:

    https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523

    PTA作业:

    7-1 找出不是两个数组共有的元素 (20 分)

    给定两个整型数组,本题要求找出不是两者共有的元素。

    代码:

     1 #include<stdio.h>
     2 int num3[20], j = 0;//定义数组记录符合的数
     3 void zhaobutong(int num1[], int n1, int num2[], int n2)
     4 {
     5     int i, flag, i1;
     6     for(i = 0, flag = 0; i < n1; i++)//循环第一个数组的每位数
     7     {
     8         for(i1 = 0; i1 < n2; i1++)//循环第二个数组的每位数
     9         {
    10             if(num1[i] == num2[i1])//比较第一二个数组的每位数
    11             {
    12                 flag = 1;
    13                 break;
    14             }
    15         }
    16         if(flag == 0)
    17         {
    18             for(i1 = 0; i1 < j; i1++)
    19             {
    20                 if(num3[i1] == num1[i])//比较是否已经记录了这个数
    21                 {
    22                     flag = 1;l
    23                 }
    24             }            
    25         }
    26         if(flag == 0)//如果符合以上条件存入数组三
    27         {
    28             num3[j] = num1[i];
    29             j++;
    30         }
    31         flag = 0;
    32     }
    33 }
    34 int main()
    35 {
    36     int num1[20], num2[20], i, i1 = 0;
    37     int n1, n2;
    38     scanf("%d", &n1);//输入第一个数组长度
    39     for(i = 0; i < n1; i++)//输入第一个数组的数
    40     {
    41         scanf("%d", &num1[i]);
    42     }
    43     scanf("%d", &n2);//输入第二个数组长度
    44     for(i = 0; i < n2; i++)//输入第二个数组的数
    45     {
    46         scanf("%d", &num2[i]);        
    47     }
    48     zhaobutong(&num1, n1, &num2, n2);//比较第一个数组与第二个数组中不相同的数
    49     zhaobutong(&num2, n2, &num1, n1);//比较第二个数组与第一个数组中不相同的数
    50     for(i = 0; i < j; i++)//输出数组三的数
    51     {
    52         if(i == j - 1)
    53         {
    54             printf("%d", num3[i]);
    55         }
    56         else
    57         {
    58             printf("%d ", num3[i]);
    59         }
    60     }
    61 }

    流程图:

    调试过程:

    ______________________________________________________________________________________________________________________________

    7-3 冒泡法排序 (20 分)

    N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。

    本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。

    代码:

     1 #include<stdio.h>
     2 void exchange(int *num1, int *num2)//函数交换所要交换的内容
     3 {
     4     int exchange;
     5     exchange = *num1;
     6     *num1 = *num2;
     7     *num2 = exchange;
     8 }
     9 int main()
    10 {
    11     static int num[100];
    12     int k, n, i, j;
    13     scanf("%d %d", &n, &k);//输入所输数组长度与冒泡次数
    14     for(i = 0; i < n; i++)//输入数组内容
    15     {
    16         scanf("%d", &num[i]);
    17     }
    18     for(i = 0; i < k; i++)//循环多少次
    19     {
    20         for(j = 0;j < n - i  - 1 && n != 1; j++)//每次冒泡循环次数
    21         {
    22             if(num[j] > num[j + 1])//比较前后两数大小
    23             {
    24                 exchange(&num[j], &num[j + 1]);//符合的交换其值
    25             }    
    26         }        
    27     }
    28     for(i = 0; i < n; i++)
    29     {
    30         if(i == n - 1)
    31         {
    32             printf("%d", num[i]);
    33         }
    34         else
    35         {
    36             printf("%d ", num[i]);
    37         }
    38     }
    39     
    40 }

    流程图:

     

    调试过程:

     二、总结和学习进度条

    这几周对指针有更深的学习,发现数组就是个特殊的指针常量,还要继续熟悉c语言基础

    互评:

    https://www.cnblogs.com/1a2B3c4D/p/10160490.html

    https://www.cnblogs.com/asdwadsxc/p/10170543.html

    https://www.cnblogs.com/error203/p/10160025.html

  • 相关阅读:
    GARP和GVRP
    VLAN间路由
    Voice VLAN
    VLAN
    SSH
    Telnet
    FTP
    DHCP
    STP
    交换机
  • 原文地址:https://www.cnblogs.com/moyoujiang/p/10166337.html
Copyright © 2011-2022 走看看