zoukankan      html  css  js  c++  java
  • 第四周

    <选择法排序 >
    https://pintia.cn/problem-sets/1107465434997153792/problems/1107465486259937281
    目标:对选择排序法有一个具体的学习和了解。
    这次作业主要是用选择排序法编写一段代码,所以学会这个题目也对选择排序法有了一定的认识。
    参考文献:《C语言程序设计》

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

    2.设计思路


    3.遇到的问题
    问题一:主要是对于空格的输出,理解上有误差,导致格式错误。
    解决方法:询问室友,解决问题。

    4.运行截图

    <找鞍点>
    https://pintia.cn/problem-sets/1107465434997153792/problems/1107465486259937282
    目标:学习找矩阵中行最大,列最小的数。
    这个作业找鞍点,即我所学目标。
    参考文献:《C语言程序设计》
    1.实验代码

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

    2.设计思路




    3.遇到问题
    问题一:主要是在编写时比较行、列后思绪较为混乱,没有对比是否为一个数。
    解决问题:上网查询,和室友讨论。

    4.运行截图

    <冒泡法排序>
    https://pintia.cn/problem-sets/1107461872653131776/problems/1107464690202009600
    目标:在学习选择排序法后,再学习冒泡排序法。
    这个作业是用冒泡排序法把数组按从大到小输出。
    主要是在百度上学习。
    1.实验代码

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

    2.设计思路



    3.遇到问题
    问题一:主要还是空格处i的取值取错,导致结果错误。
    解决问题:询问室友。

    4.运行截图

    心得:主要是细节上的问题,以后还是要仔细做题。
    时间:一个下午加二个小时。
    学习感悟:这周主要学习了选择排序法、冒泡排序法、找鞍点、字符串的查找等等。学到了排序法和字符串的一些知识。
    难点主要是二中排序法一开始并未学到精髓,思维逻辑混乱。
    请教室友,慢慢理清逻辑。


  • 相关阅读:
    Java中String做为synchronized同步锁
    99%的人都理解错了GET与POST的区别
    为什么Java中只有值传递
    解决maven打包时,会编译特定文件导致文件不可用
    Java使用icepdf转高清图片
    iText输出中文
    Error:(1, 1) java: 非法字符: ‘ufeff’
    java根据模板生成pdf
    携程Apollo统一配置中心的搭建和使用
    1008
  • 原文地址:https://www.cnblogs.com/arthur-w/p/10565733.html
Copyright © 2011-2022 走看看