• 第四周作业


    所属课程:选择法排序 。

    作业要求:https://pintia.cn/problem-sets/1107465434997153792/problems/1107465486259937281
    课程目标:学会运用数组运算,学习数组运算等方法并解决一些实际问题。
    作业的运用:运用选择排序法将数组从大到小排序。
    参考文献:c语言程序设计书。

    作业代码

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

    1. 设计思路

    第一步:定义5个量I,n,t,k,index.定义一个能容纳十个数的数组。
    第二步:输入n个数
    第三步:利用中间变量对这n个数比较大小,按从大到小排列
    第四步:输出这n个数
    ![](https://img2018.cnblogs.com/blog/1580717/201903/1580717-20190322195541278-1780941336.jpg

    问题及解决方法

    问题:代码的前半部分是在从大到小排数字,但题目是从大到小输出数字,按照这种思路,后面有一些思路混乱,不知道该如何编写代码。
    解决办法:按常规思路来,与同学讨论,上网查寻资料。

    运行结果

    所属课程:找鞍点

    作业要求:https://pintia.cn/problem-sets/1107465434997153792/problems/1107465486259937282
    课程目标:学会运用数组运算,学习数组运算等方法并解决一些实际问题。
    作业的运用:找出行中最大,列中最小值,对数组进一步进行运用,熟练掌握用数组解决相关问题。
    参考文献:c语言程序设计书。

    作业代码

    #include<stdio.h>
    int main()
    {
      int i,j,n,l,k,flag;
      int a[6][6];
      scanf("%d",&n);
      flag=0;
      for(i=0;i<n;i++)
      {
        
        for(j=0;j<n;j++)
        {
          scanf("%d",&a[i][j]);   //输入矩阵
        }
      }
      l=0;
      for(i=0;i<n;i++)
      {
        for(j=0;j<n;j++)    
        {
          if(a[i][j]>=a[i][l]&&j!=l)   //先在一行中找出最大的值,记下位置;
          {
            l=j;
          }
        }
        flag=1;   //找到一行中的最大值,做个标记令flag=1;
        for(k=0;k<n;k++)
        {
          if(a[k][l]<a[i][l])   //判断它所在的列中是否有比它小的数,
            {                  //如果有则令flag=0,表示它不是鞍点。
              flag=0;
              break;
            }
        }
        if(flag==1)    //有一个鞍点,即可退出循环。
          break;
      }
      if(flag==0)
        printf("NONE");
      else
        printf("%d %d",i,l);
      return 0;
    }  
    

    设计思路

    问题及解决方法

    问题:对相关条件判断错误,导致运行错误。
    解决方法:自己仔细寻找错误所在。

    运行结果

    冒泡法排序

    作业要求:https://pintia.cn/problem-sets/1107461872653131776/problems/1107464690202009600
    课程目标:学会运用数组运算,学习数组运算等方法并解决一些实际问题。
    作业的运用:冒泡排序法。
    参考文献:自己网上查询的资料。

    作业代码

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

    设计思路

    问题及解决方法

    问题:先前并不了解冒泡排序是什么,对题目的理解就存在一些问题,导致不知道该如何编写程序
    解决方法:自己上网查询。

    运行结果

    学习进度条

    折线图

    心得

    感觉自己还存在很多不足,缺乏独立思考问题的能力,有一些问题其实仔细思考就会有结果,但自己却未仔细思考就去问同学,或者上网查询资料,希望自己以后能独立思考并解决问题,加油。

    结对编程的优缺点

    优点:一起合作有利于开拓思维,加速解题过程。
    缺点:每个人的想法不一样,可能会造成思想的碰撞。

  • 相关阅读:
    纪念又一次ak
    hdu5618
    bzoj3393
    bzoj3438
    [JSOI2007]建筑抢修
    [CQOI2014]数三角形
    [BZOJ2662][BeiJing wc2012]冻结
    [NOIP2015]运输计划
    [ZJOI2006]超级麻将
    [APIO2009]抢掠计划
  • 原文地址:https://www.cnblogs.com/buxiu888/p/10581717.html
Copyright © 2020-2023  润新知