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


    (1) 所属课程:选择法排序 。
    作业要求: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)问题与解决办法
    问题1:按照书上的例题写,少了一个步骤。
    解决办法:重新阅读所写代码,发现最大值下标未变。

    问题2:未按照要求输出,输出无空格。
    解决办法:发现输出后数字无空格,便添加空格并将第一个数字做无空格处理。

    (4)运行结果

    (1)所属课程:找鞍点
    作业要求:https://pintia.cn/problem-sets/1107465434997153792/problems/1107465486259937282
    课程目标:学会运用数组运算,学习数组运算方法。
    作业的运用:找出行中最大,列中最小值。数组进一步运用。
    参考文献:c语言程序设计

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

    (2)设计思路

    (3)错误及解决办法
    错误1:编写代码时运用for 的嵌套时赋值错误。
    解决办法:运用Dev-c++运算,答案错误,修改代码。

    错误2:定义数组后,循环次数用6.一开始row col没有赋值。
    解决办法:因为只是部分错误,所以运用Dev-c++不断编译运行,修改。

    (4)运行结果

    7-1作业所属课程: 冒泡法排序
    作业要求:https://pintia.cn/problem-sets/1107461872653131776/problems/1107464690202009600
    课程目标:学会运用数组运算,学习数组运算方法。
    作业的运用:冒泡排序法
    参考文献:网上资料。

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

    (2)设计思路

    (3)错误及解决办法
    错误:写代码时把最大值运用进去,造成代码编写混乱。
    解决办法:查找冒泡排序法根据网上的资料,询问搭档。弄清两个排序法的区别。


    (4)运行结果

    二.学习进度统计


    三.心得
    这次作业难度并没有上次难度那么大,但是花的时间却更多。比如制作图表等,其实都没有真正完成。而对于代码,冒泡排序法一开始我并没有学过,搭档教的具体流程。此外,还存在一些代码格式问题的错误,下次看代码时会比较注意代码的缩进。

  • 相关阅读:
    数组的复制
    二维数组的切片和索引
    一维数组的切片和索引
    is判断函数
    其他方式创建数组
    ndarray对象属性
    创建随机数组
    arange创建数组
    SmartBinding与kbmMW#3
    SmartBinding与kbmMW#2
  • 原文地址:https://www.cnblogs.com/1211li/p/10573652.html
Copyright © 2011-2022 走看看