• 第十四,十五周作业


    一,pta:

    1,交换最小值和最大值:

    (1),实验代码:

    #include<stdio.h>
    
    int main()
    {
        int i, n,idx,t;
         scanf("%d",&n); 
         int a[n];  
        for ( i = 0; i < n; i++ ) 
        {
            scanf ( "%d", &a[i] );
        } 
        idx=0;
          for ( i = 0; i < n; i++ ) 
          { 
               if ( a[i] < a[idx] )
            { 
              ; }         
        }     
           
        if(idx!=0){
            t=a[0];a[0]=a[idx];a[idx]=t;
        }
        idx=0;
        for ( i = 0; i < n; i++ ) 
          { 
               if ( a[i] > a[idx] )
            { 
               idx=i;}         
        } 
        
        if(idx!=(n-1)){
            t=a[n-1];
            a[n-1]=a[idx];
            a[idx]=t;}
            
            
            
            for ( i = 0; i < n; i++ ){
                printf("%d ",a[i]);
            }
            
            
            
          
    }

    (2),设计思路:

    第一步:输入一个n用来了解总共有多少个数。

    第二步:用一个遍历输入每个数并存储到相应的空间内。

    第三步:用一个for语句依次输出所存储的数据,并用一个if语句判断这个数据和idx数位的数据,如果这个数据比idx的那个大就将i赋给idx,循环结束后idx就是最大的那个数所处的数位。最后,判断第一项是不是最大值不是的话经过交换结束。最小的数的交换与其相同。

    第四步:最后经过一个遍历将数输出结束。

     

    (3),遇到问题:

    是因为上课的时候老师特别说了一下,便将问题解决。错误原因是在交换之前没有判断第一个是不是就是最大值。

    解决办法,在交换之前加if语句,看是否第一项就是最大,最小值同理。

    2,冒泡排序法:

    (1),实验代码:

    #include<stdio.h>
    
    int main()
    {   
        int i,j,t=0,n,k;
        scanf("%d %d",&n,&k);
        int a[n];
        
        for(i=1;i<=n;i++){
           scanf("%d",&a[i]);}
        
        for(j=1;j<=k;j++){
           for(i=1;i<=n-j;i++){
              if(a[i]>a[i+1])
             {t=a[i]; a[i]=a[i+1]; a[i+1]=t;}
                              }
                        }
                        
        for(i=1;i<=n;i++){
            if(i==n){
            printf("%d",a[i]);}
            else{
            printf("%d ",a[i]);}
        }
        
        return 0;
    }

    (2),设计思路:

    第一步:输入数据个数n,比较次数k。用一个遍历输入每个数并存储到相应的空间内。

    第二步:用一个for语句控制比较的趟数,在此for语句中再用一个for语句将最大的数放置在后面(因为每减少一趟所需比较的次数就少一次,所以每趟只需判断n-j次。)

    第三步:用一个遍历将数据输出,因为末尾不能有空格所以在其中加一个if语句控制输出。 

    (3),遇到问题:

     在Dev c++上运行的时候总是会拉掉一些点导致答案出现错误。

    解决办法就是对比TXT进行错误查找。

    3,四次pta:

    二,Git:

    (1),截图:

    (2),Git地址:https://git.coding.net/DavidPark/123.git

    三,学习总结:

    这两周主要学习了数组,感觉数组包含的知识较多,尤其是for语句所以经过两周的训练for语句更加熟练,并且感觉学习了数组并做一些应用题后自己的思维更加开阔。

    难点的话就是在做一些应用的时候有时会感觉手足无措。

    四,学习进度与互评:

    时间

    代码行数

    时间(min

    博客字数

    博客时间min

    知识点

    11.20

    100

    90

    0

    0

    Pta

    11.21

    100

    100

    0

    0

    PtaTXT事例练习

    11.22

    120

    100

    0

    0

    Pta,数组输入,输出

    11.23

    100

    100

    0

    0

    Pta,下标

    11.24

    150

    110

    0

    0

    数组实例练习

    11.25

    180

    120

    0

    0

    数组实例练习

    11.26

    150

    120

    0

    0

    Pta

    11.27

    100

    100

    50

    10

    Pta

    11.28

    100

    90

    0

    0

    Pta,二维数组输入输出

    11.29

    100

    100

    0

    0

    二维数组输入输出

    11.30

    200

    110

    0

    0

    Pta

    12.1

    150

    90

    60

    30

    Pta

    12.2

    160

    110

    110

    90

    数组实例练习

    12.3

    200

    120

    40

    10

    数组实例练习

    互评:

    1,高立彬:http://www.cnblogs.com/gao628526/p/7931800.html

    2,班庆泽:http://www.cnblogs.com/wsbqz/p/7965666.html

    3,张国庆:http://www.cnblogs.com/zgq947/p/7966299.html

  • 相关阅读:
    Oracle分页问题
    win10系统vs2008环境wince项目无法创建问题
    工作满十年了
    让Vs2013 完美支持EF6.1 Code First with Oracle 2015年12月24日更新
    Oracle DMP 操作笔记之根据DMP逆向推导出导出的表空间名称
    【转】如何在 Eclipse 中進行 TFS 的版本管控
    【转】什麼是 Team Explorer Everywhere 2010 ?TFS 專用的 Eclipse 整合套件的安裝與設定
    [转]有关USES_CONVERSION
    [转]使用VC/MFC创建一个线程池
    IT男的”幸福”生活
  • 原文地址:https://www.cnblogs.com/DavidPark/p/7955168.html
Copyright © 2020-2023  润新知